我刚刚将我的 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 的使用上。可以阅读有关解决方案的帖子这里。
简而言之:
- 通过在 ssh 命令前面添加 SSH_AUTH_SOCK=0 来检测问题。sam@xxxxx:~/.ssh$ SSH_AUTH_SOCK=0 ssh[电子邮件保护]
- 如果连接成功,请打开应用程序启动应用程序(例如,使用桌面的搜索功能)并禁用 gnome-keyring。
- 重启
如果出现类似问题但有不同的解决方案,该页面将提供其他详细信息。
答案4
升级到 Ubuntu 18.04 后,我遇到了同样的错误sign_and_send_pubkey: signing failed: agent refused operation
。原来这是由于 ssh 密钥的权限太开放造成的。以下命令帮我解决了这个问题
chmod 600 .ssh/id_rsa