ubuntu – 协议版本不匹配 – 你的shell干净吗?

前端之家收集整理的这篇文章主要介绍了ubuntu – 协议版本不匹配 – 你的shell干净吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
按照此处给出的rsync备份说明进行操作时: http://troy.jdmz.net/rsync/index.html

我收到错误“协议版本不匹配 – 你的shell干净了吗?”

我在某处读到了我需要静默提示(PS1 =“”)和motd(.hushlogin)来处理这个问题.我这样做了,提示登录横幅(MOTD)不再出现​​,但是当我运行时仍然出现错误

rsync -avvvz -e "ssh -i /home/thisuser/cron/thishost-rsync-key" remoteuser@remotehost:/remote/dir /this/dir/

ssh客户端和sshd服务器都使用协议的版本2.

可能是什么问题呢?谢谢.

[编辑]
我找到了http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
它指示有时需要“通过使用-2标志来强制v2 ssh或slogin

ssh -2 -i ~/.ssh/my_private_key remotemachine"

目前尚不清楚这是否解决了这个问题,因为我认为我在更改错误之后将此更改置于事实上,但事实是错误已经演变为其他问题.当我了解更多信息时,我会更新此信息.我一定会尝试在emacs shell中运行它的建议 – 谢谢.

@H_301_22@ 您的一个登录脚本(.bashrc / .cshrc / etc.)可能正在向终端输出数据(当它不应该时).这会导致ssh在连接并准备复制时出错,因为它开始接收它不期望的额外数据.删除启动脚本中生成输出.

您可以通过在bashrc中使用以下代码来检查终端是否是交互式的,并且只输出文本.其他shell也存在等价物:

if shopt -q login_shell; then
    [any code that outputs text here]
fi

或者,像这样,因为特殊参数 – 当shell是交互式时包含i:

if echo "$-" | grep i > /dev/null; then
    [any code that outputs text here]
fi

有关更多信息,请参阅:rsync via ssh from linux to windows sbs 2003 protocol mismatch

要诊断这一点,请确保以下内容是您在加入主机时获得的输出

USER@HOSTNAME's password: 
Last login: Mon Nov  7 22:54:30 2011 from YOURIP
[USER@HOSTNAME ~]$

如果您获得任何换行或其他数据,您就会知道正在发送额外的输出.您可以重命名.bashrc / .cshrc / .profile / etc.将文件转换为其他内容,以便它们不会输出额外的输出.当然,仍有系统文件可能导致此问题.在这种情况下,请与您的系统管理员核实系统文件输出数据.

猜你在找的Ubuntu相关文章