我试图从服务器scp文件到我的本地机器,但它给了我这个错误:
protocol error: unexpected <newline>
这是我的语法:
scp user@server:/path/to/file .
它没有在这台服务器上工作,但后来我在我的另一台服务器上尝试了相同的命令,所以我只能假设它是我的服务器有问题,而不是scp命令的语法。
有任何想法吗?
其中一个login脚本(.bashrc / .cshrc /等)正在向terminal输出数据,当它不应该。 这导致scp在连接时发生错误并准备好复制,因为它开始接收不期望的额外数据。 删除此处生成的输出。
您可以检查您的terminal是否是交互式的,并且只能通过在bashrc中使用以下代码输出文本。 其他shell也有相同的东西:
if shopt -q login_shell; then [any code that outputs text here] fi
find解决scheme。 我的.bashrc文件和.bash_logout被设置为在我login/注销时向我回送信息。 显然,这个新的回应给了scp一些问题。 我评论了我的回声,并做了诀窍!