scp 成功将文件传输到主机,但文件不会显示

scp 成功将文件传输到主机,但文件不会显示

我正在尝试将文件从本地计算机传输到远程计算机。

当我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

相关内容