使用无密码 SSH 时反复出现“代理承认使用密钥签名失败”错误

使用无密码 SSH 时反复出现“代理承认使用密钥签名失败”错误

我的网络上的一台机器(Mint 12 工作站,最新版)定期会陷入不良状态,其中所有传出的 SSH 连接都会回退到密码验证,并出现错误“代理承认无法使用密钥签名”,而不是使用已配置的基于密钥的身份验证。

一旦处于此状态,所有传出连接将 100% 失败。传入的基于密钥的身份验证似乎连接正常。我尝试删除并重新生成密钥对并重新分发公钥,但错误仍然存​​在。

重新启动可以暂时解决错误,但几天后又会再次出现。似乎与任何特定事件/工作流程不符,但我可能遗漏了某些内容。

还有谁见过这个吗?

答案1

这里的“代理”是ssh-agent,一个将私钥加载到内存中并保存以供将来的 ssh 连接使用的程序,这样您就不必重新输入密码。看起来好像在某个地方,它被命令忘记密钥(您是否暂停到磁盘/休眠?这样做可能是为了防止将未加密的密钥写入磁盘)或有一个导致它忘记密钥的错误。无论哪种方式,ssh-add都应该允许您将密钥添加回代理。

我是相当如果由于某种原因ssh无法通信,您肯定会收到不同的错误消息。如果说它无法打开与您的身份验证代理的连接,那么真正的问题是它停止运行,或者指示如何与代理取得联系的环境变量已丢失,或者套接字文件已消失。如果在发生这种情况时环境变量和都仍处于设置状态(使用),请确保引用的 ssh-agent 进程仍在运行,如果是,则套接字文件仍在那里。可能是您有一个激进的清理过程正在删除套接字。ssh-agentssh-addssh$SSH_AUTH_SOCK$SSH_AGENT_PIDecho $SSH_AGENT_PID$SSH_AGENT_PID$SSH_AUTH_SOCK/tmp

相关内容