当前位置: 首页>>技术问答>>正文


Ubuntu 16.04 ssh:sign_and_send_pubkey:签名失败:代理拒绝操作

, ,

问题描述

我刚刚从我的系统中删除了Ubuntu 15分区,将我的Ubuntu系统从15.10升级到了16.04。

安装Ubuntu 16.04之后,我重新创建了我的ssh密钥,因为我忘了备份它们,但是每当我尝试使用ssh时,我都会收到sign_and_send_pubkey: signing failed: agent refused operation,这有点烦人,因为它让我通过我的SSH服务器,但git拒绝使用ssh推送代码。

我已经通过使用ssh-copy-id将密钥推送到服务器。

我连接的服务器是通过do-release-upgrade命令升级的Ubuntu 16.04服务器。任何帮助将不胜感激。

最佳解决思路

看起来像一个ssh-agent已经运行,但它无法找到任何附加的键。要解决这个问题,请将私钥身份添加到身份验证代理,如下所示:

ssh-add

然后你可以将ssh放入你的服务器。

此外,您可以通过以下方式查看当前添加的所有身份的指纹列表:

ssh-add -l

次佳解决思路

我有同样的问题(相同的症状)

sam@xxxxx:~/.ssh$ ssh centos@123.123.123.123
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

…但解决方案是不同的。

问题来自使用GNOME-KEYRING。涉及解决方案的帖子可能是here

简而言之:

  1. 通过在ssh命令前添加SSH_AUTH_SOCK = 0来检测问题。 sam @ xxxxx:〜/.ssh $ SSH_AUTH_SOCK = 0 ssh centos@123.123.123.123

  2. 如果它成功连接。打开应用程序启动应用程序(例如使用桌面的搜索功能)并禁用gnome-keyring。

  3. 重启

该页面提供了其他细节,以解决与解决方案类似的问题。

第三种解决思路

在登录到多个服务器时,我正在获取sign_and_send_pubkey: signing failed: agent refused operation,请阅读VonC’s answer on Stack Overflow以获取有关相关错误的更多信息,解决方案是删除gnome-keyring,从ssh-agent删除标识并重新启动。

sudo apt-get autoremove gnome-keyring
ssh-add -D

然后我所有的钥匙开始工作完美。

第四种思路

在我的系统上(也是Ubuntu 16.04,试图连接到github),我的.ssh文件夹中有一个文件id_ed25519,导致ssh-add失败:

$ ssh-add
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
Could not add identity "~/.ssh/id_ed25519": communication with agent failed

删除文件~/.ssh/id_ed25519*(不再需要它们,它是从一个较早的测试),一切都很好再次。

第五种思路

碰巧发生在我身上,因为我的私钥有密码。必须运行ssh-add然后它询问密码并正确添加。但是,现在当ssh’ing到机器时,它不会要求我的密码。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/839.html,未经允许,请勿转载。