我在一台机器上安装了 Ubuntu 17.10 并创建了一个 ssh 密钥。但是我无法使用 gnome 密钥环来解锁此 ssh 密钥,尝试通过 ssh 连接或将我的 ssh 密钥与 git 一起使用时,我总是收到以下错误消息:
sign_and_send_pubkey: signing failed: agent refused operation
我发现了很多关于此消息的帖子和问题,但没有一个能解决我的问题。我的系统的一些输出:
$ env | grep -i ssh
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
SSH_AGENT_PID=1139
$ ps aux | grep -i 'agent\|keyring'
username 997 0.0 0.1 509344 8064 ? Sl 15:15 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
username 1139 0.0 0.0 11240 324 ? Ss 15:15 0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
$ ssh-add -l
4096 SHA256:fingerprintXXX username@machine (RSA)
我在虚拟机中再次安装了 ubuntu,如果尝试使用 ssh 或 git 以及 ssh 密钥,就会弹出图形密码对话框并完美地要求我输入密码。
答案1
代理可以工作,它只是不配合,因为它认为你正在做一些不安全的事情。
最常见的情况是您的 ssh 密钥文件权限错误。例如,如果您从另一台计算机复制了它们;请确保该~/.ssh
文件夹具有700
权限(只有您可以访问),同样,其中的文件不应被其他人读取。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*