scp 返回“意外的 <newline>”错误

src*_*ulo 11 ssh scp

我正在尝试将scp文件从服务器传输到我的本地机器,但它给了我这个错误:

protocol error: unexpected <newline>
Run Code Online (Sandbox Code Playgroud)

这是我的语法:

scp user@server:/path/to/file .
Run Code Online (Sandbox Code Playgroud)

它在这台服务器上不起作用,但后来我在另一台服务器上尝试了相同的命令,所以我只能假设这是我的服务器出了问题,而不是scp命令的语法。

有任何想法吗?

And*_*ase 22

您的登录脚本 (.bashrc/.cshrc/etc.) 之一在不应该将数据输出到终端时。这会导致 scp 在连接并准备复制时出错,因为它开始接收它不期望的额外数据。删除此处生成的输出。

您可以通过在 bashrc 中使用以下代码来检查您的终端是否是交互式的并且仅输出文本。其他外壳也存在等效的东西:

if shopt -q login_shell; then
    [any code that outputs text here]
fi
Run Code Online (Sandbox Code Playgroud)