我刚刚通过从我的系统中完全擦除 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 服务器。任何帮助将不胜感激。
Ron*_*Ron 406
看起来ssh-agent已经在运行,但找不到任何附加的键。要解决此问题,请将私钥身份添加到身份验证代理,如下所示:
ssh-add
Run Code Online (Sandbox Code Playgroud)
然后你就可以ssh进入你的服务器了。
此外,您还可以看到当前添加的所有身份的指纹列表:
ssh-add -l
Run Code Online (Sandbox Code Playgroud)
Ant*_*sta 189
我在 Ubuntu 18.04 上遇到了同样的问题。这就是客户端私钥权限的全部内容。
$ ssh root@192.168.1.1
sign_and_send_pubkey: signing failed: agent refused operation
Run Code Online (Sandbox Code Playgroud)
文件权限太开放 (0644)。
以下命令解决了它:
chmod 600 ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
小智 77
我有同样的问题(相同的症状)
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).
Run Code Online (Sandbox Code Playgroud)
...但解决方案是不同的。
问题来自使用 GNOME-KEYRING。可以在此处阅读有关解决方案的帖子。
简而言之:
如果使用不同的解决方案出现类似问题,该页面会提供其他详细信息。
Mik*_*ike 28
sign_and_send_pubkey: signing failed: agent refused operation当我登录到几台服务器并阅读VonC 在 Stack Overflow 上的回答时,我得到了有关相关错误的更多信息。我的解决方案是从 中删除gnome-keyring、删除身份ssh-agent,然后重新启动。
sudo apt-get autoremove gnome-keyring
ssh-add -D
Run Code Online (Sandbox Code Playgroud)
然后我所有的钥匙开始完美地工作。
如果您想将 保留gnome-keyring在本地计算机上并且出现agent refused operation错误,请使用:
eval `ssh-agent -s`
ssh-add
Run Code Online (Sandbox Code Playgroud)
或使用SSH_AUTH_SOCK=0 ssh your-server.
如果可以,gnome-keyring与 4096 位 RSA 密钥兼容,因此只需生成一个新密钥:
ssh-keygen -t rsa -f ~/.ssh/your-key-name -b 4096 -v -C root
Run Code Online (Sandbox Code Playgroud)
上传公钥到服务器:
ssh-copy-id -i ~/.ssh/your-key-name.pub root@12.34.56.78
Run Code Online (Sandbox Code Playgroud)
将 ssh 密钥添加到代理:
ssh-add ~/.ssh/your-key-name
Run Code Online (Sandbox Code Playgroud)
这应该可以在没有任何额外黑客的情况下工作,并且gnome-keyring可以保持安装状态。
(这-C [username]是可选的,但 Google Cloud 等提供商需要。)
小智 15
升级到 Ubuntu 18.04 后,我遇到了同样的错误sign_and_send_pubkey: signing failed: agent refused operation。原来是因为 ssh 密钥的权限太开放了。以下命令为我解决了问题
chmod 600 .ssh/id_rsa
在我的系统(也是 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
Run Code Online (Sandbox Code Playgroud)
删除文件后~/.ssh/id_ed25519*(不再需要它们,它来自早期的测试)一切又正常了。
小智 6
我全新安装了 Ubuntu16.04,并且遇到了类似的问题。当我在将我的公钥复制到 github(按照github.com 上的说明)并执行以下检查(在 github.com上推荐)之后尝试从 Github 克隆我的存储库时:
ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)
我受到了以下的欢迎:
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
为了快速修复它,而不删除任何内容或更改我的启动配置,我只是在终端中输入以下内容:
killall gnome-keyring-daemon
Run Code Online (Sandbox Code Playgroud)
然后克隆工作了。然后我通过键入以下内容再次启动停止的守护进程:
gnome-keyring-daemon
Run Code Online (Sandbox Code Playgroud)
后来,为了以更永久的方式改变事物,我遵循了这里的建议
小智 5
将 Fedora 26 升级到 28 后,我遇到了同样的问题。并且没有日志文件
no /var/log/secure
no /var/log/messages
antop@localmachine ? ~ ? ssh root@ocp1.example.com
sign_and_send_pubkey: signing failed: agent refused operation
root@ocp1.example.com's password:
Run Code Online (Sandbox Code Playgroud)
错误消息没有指向实际问题。问题已解决
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Run Code Online (Sandbox Code Playgroud)