我网络上的一台机器(最新的 Mint 12 工作站)定期进入错误状态,其中所有传出的 SSH 连接都回退到密码身份验证,并出现错误“agent admitted failure to sign using the key”而不是使用密钥已配置的基于身份验证。
一旦处于这种状态,所有传出连接将在 100% 的时间内失败。传入的基于密钥的身份验证似乎可以正常连接。我尝试删除并重新生成密钥对并重新分配公钥,但错误仍然存在。
重新启动将暂时解决该错误,但它会在几天后再次出现。似乎与任何特定事件/工作流程都不一致,但我可能遗漏了一些东西。
还有其他人看到这个吗?
这里的“代理”是
ssh-agent
一个程序,它将私钥加载到内存中并保存它以供将来的 ssh 连接使用,这样您就不必重新输入密码。它看起来像是在某个地方,它被命令忘记密钥(你是在暂停到磁盘/休眠吗?这可能是为了防止未加密的密钥被写入磁盘)或者有一个错误导致它忘记了钥匙。无论哪种方式,ssh-add
都应该允许您将密钥添加回代理。我敢肯定,如果由于某种原因
ssh
无法与您通话,您会收到不同的错误消息。ssh-agent
如果ssh-add
说它无法打开与您的身份验证代理的连接,那么真正的问题是它停止运行,或者告诉ssh
如何与代理取得联系的环境变量已经丢失,或者套接字文件已经消失。如果发生这种情况时环境变量$SSH_AUTH_SOCK
和$SSH_AGENT_PID
都仍然设置(使用echo $SSH_AGENT_PID
),请确保引用的 ssh-agent 进程$SSH_AGENT_PID
仍在运行,如果是这样,则套接字文件$SSH_AUTH_SOCK
仍然存在。可能是您采用了强力/tmp
清洁过程来移除插座。