简单的解决方案

简单的解决方案

我刚刚将我的 Ubuntu 系统从 15.10 升级到 16.04,方法是从系统中彻底擦除 Ubuntu 15 分区。

安装 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 服务器。如能得到任何帮助,我将不胜感激。

答案1

看起来ssh-agent已经在运行,但找不到任何附加的密钥。要解决此问题,请将私钥身份添加到身份验证代理,如下所示:

ssh-add

然后您就可以ssh进入您的服务器。

此外,您还可以查看当前添加的所有身份的指纹列表:

ssh-add -l

答案2

简单的解决方案

我在 Ubuntu 18.04 上遇到了同样的问题。这就是客户端的问题私钥权限

$ ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation

文件权限太开放(0644)。

以下命令解决了这个问题:

chmod 600 ~/.ssh/id_rsa

答案3

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

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

...但解决方案不同。

问题出在 GNOME-KEYRING 的使用上。可以阅读有关解决方案的帖子这里

简而言之:

  1. 通过在 ssh 命令前面添加 SSH_AUTH_SOCK=0 来检测问题。sam@xxxxx:~/.ssh$ SSH_AUTH_SOCK=0 ssh[电子邮件保护]
  2. 如果连接成功,请打开应用程序启动应用程序(例如,使用桌面的搜索功能)并禁用 gnome-keyring。
  3. 重启

如果出现类似问题但有不同的解决方案,该页面将提供其他详细信息。

答案4

升级到 Ubuntu 18.04 后,我遇到了同样的错误sign_and_send_pubkey: signing failed: agent refused operation。原来这是由于 ssh 密钥的权限太开放造成的。以下命令帮我解决了这个问题 chmod 600 .ssh/id_rsa

相关内容