当我尝试 scp 传输时出现此错误:
protocol error: bad mode
PD:我可以建立 ssh 连接。
答案1
所以,这有点像疑问巫术,但既然我来到这里,并在阅读了第一个答案后意识到答案是什么,我想我会把它放在这里,给其他任性的灵魂。
由于 scp 的工作方式(据我所知通过 ssh 上的 stdin/stdout),使用一个简单的 bashrc 打印消息会破坏 scp 所期望的格式,从而破坏连接。
正如其他地方的各种答案所建议的那样(链接如下),修改点文件通常是解决此问题的方法:
- 您可以在相关文件(通常是 .bashrc)中检查 shell 是否在打印消息之前处于交互状态,
- 或者,稍微不那么直接地说,检查PS1是否为空白(除非有什么东西改变了它,否则它应该处于非交互式会话中)。
答案2
问题出在 Bash 的个性化欢迎信息上
答案3
检查 .bashrc 和 .bash_login 文件的内容。确保没有任何内容将输出发送到 tty。
就我而言,我在 .bashrc 中运行了一个命令来告诉我我使用的 Linux 版本。当我删除它时,一切正常。