我正在尝试将文件从本地计算机传输到远程计算机。
当我scp
不带-v
选项使用时,它仅给出以下输出:
.--. or '\033[0;1;33;93m.-\033[0;1;32;92m-.\033[0m'
当我尝试scp
使用-v
选项时,我得到以下输出,似乎文件已成功传输:
--
$ scp -v file.sh user@IP:/home/user/foo
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LC_PAPER = tr_TR.UTF-8
debug1: Sending env LC_ADDRESS = tr_TR.UTF-8
debug1: Sending env LC_MONETARY = tr_TR.UTF-8
debug1: Sending env LC_NUMERIC = tr_TR.UTF-8
debug1: Sending env LC_ALL = en_US.UTF-8
debug1: Sending env LC_TELEPHONE = tr_TR.UTF-8
debug1: Sending env LC_IDENTIFICATION = tr_TR.UTF-8
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_MEASUREMENT = tr_TR.UTF-8
debug1: Sending env LC_CTYPE = UTF-8
debug1: Sending env LC_TIME = tr_TR.UTF-8
debug1: Sending env LC_NAME = tr_TR.UTF-8
debug1: Sending command: scp -v -t /home/user/foo
.--.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2504, received 2668 bytes, in 1.7 seconds
Bytes per second: sent 1510.2, received 1609.1
debug1: Exit status 0
请参阅sshd_config
文件这里。请注意我可以ssh
进入远程机器。也ssh user@IP pwd
归来/home/user
。
[问] scp
成功传输文件,但它没有显示在远程计算机上。这可能是什么原因,我该如何解决?
答案1
确保 shell 中没有将数据回显到终端的启动脚本。这可能在.bashrc
或.profile
当 scp 连接到远程主机时,它期望看到 SSH 服务器标头,后跟打开的标准输入流。
如果远程主机上的 .profile 回显任何输出,则会导致 scp 无提示地失败。如果是这种情况,您可能需要删除它或设置一个保护条件以确保在没有控制 tty 设备的情况下不会打印任何内容。请参阅tty
命令。
答案2
我通常使用主机名(DNS 名称,而不是 IP)。请尝试以下操作:
scp -rv file.sh dest@host@DNS:/home/user/foo/
答案3
您的远程计算机上运行什么操作系统和文件系统?复制之前的文件属性是什么?每个人都可以阅读吗?
作为进一步的故障排除步骤,请尝试将文件从远程计算机复制回本地计算机,但将其命名为其他名称。
scp user@IP:/remote/machine/remoteFile /local/machine/remoteFileRenamed