ssh
我有一个包含一些命令的 Makefile rsync
。全部执行都没有错误,但是给出如下错误信息:
Error reading response length from authentication socket.
我不喜欢神秘的错误消息 - 你知道它的含义以及如何修复它吗?
答案1
大多数错误消息的谷歌结果表明这解决了问题:
eval $(ssh-agent)
ssh-add
导致此错误的原因可能有多种,您必须分析每种情况才能了解发生了什么情况。
当 ssh-agent 启动时,它会设置两个环境变量:SSH_AUTH_SOCK
和SSH_AGENT_PID
。如果您从另一台主机转发代理,则不会设置后者。
SSH_AUTH_SOCK
是错误消息中提到的“身份验证套接字”。
如果您有本地代理(SSH_AGENT_PID
已设置),则进程可能会死亡或无法写入套接字。
如果您有转发代理,则远程端可能关闭了套接字,或者本地进程无法从转发套接字读取数据。
当然还有其他可能的原因,但这些是我现在能想到的或者我自己遇到过的。
您必须诊断每个病例,strace
并lsof
可以提供帮助。
话又说回来,你可以按照其他人的建议开始一个新的代理,然后继续做一些更有趣的事情;)