如何手动触发ssh添加对话框?

Ham*_*ner 6 ssh ssh-agent gnome-keyring

ssh-add在命令行上运行不再正确解锁我的系统上的 ssh 密钥(Ubuntu 11.10 with Unity)。即使在我运行 ssh-add 之后,当我 ssh 到服务器时,我也会弹出一个对话框,询问我的 ssh 密钥密码。之后,事情按预期工作。

ssh-agent在跑。当我第一次登录时:

$ ps -ef | grep ssh-agent
mish      1853  1818  0 18:55 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu
Run Code Online (Sandbox Code Playgroud)

如何正确解锁 ssh 密钥而不必通过 ssh 连接到服务器?(手动触发 ssh 密钥对话框窗口可以作为解决方案,但我不知道该怎么做)。

我的用例是我使用tmuxinator并想设置多个 ssh 连接。所以我想解锁 ssh 密钥。否则所有 ssh 密钥对话框都会弹出,我必须多次输入密码。或者我可以在启动 tmuxinator 之前在某个地方 ssh,但是这里的连接很慢,所以只会增加摩擦。所以我想在启动 tmuxinator 之前解锁 ssh 密钥,而不必先在某个地方 ssh。

编辑

刚刚尝试注销并重新登录。然后我做了:

$ env | grep -i ssh
SSH_AGENT_PID=8693
SSH_AUTH_SOCK=/tmp/keyring-Ho4cfE/ssh
$ ssh-add -D
All identities removed.
$ ssh-add -l
1024 b8:12:34:56[...]:19 name@computer (DSA)
$ ssh-add
Enter passphrase for /home/name/.ssh/id_dsa: 
Identity added: /home/name/.ssh/id_dsa (/home/mish/.ssh/id_dsa)
$ ssh-add -l
1024 b8:12:34:56[...]:19 /home/name/.ssh/id_dsa (DSA)
1024 b8:12:34:56[...]:19 name@computer (DSA)
0 mish@mishtop:~$ ssh server
Run Code Online (Sandbox Code Playgroud)

此时,GUI 对话框再次要求我输入密码。令人沮丧...

同样有趣的是,在“删除所有身份”后,ssh-add -l仍然显示身份。这让我很困惑。并且似乎只有一个 ssh-agent 在运行。

编辑2:

我在启动板上发现了一个关于此的错误:https : //bugs.launchpad.net/ubuntu/+source/openssh/+bug/841672

然而,这个问题是关于寻找解决方法而不是询问为什么它不起作用,所以我希望这个问题可以成立。

编辑3:

没什么不寻常的/etc/ssh/ssh_config- 我没有碰过它。我确实有,~/.ssh/config但这只是端口和用户名。

当对话框弹出时,我观察了哪些进程正在运行,它是/usr/lib/gnome-keyring/gnome-keyring-prompt-3/usr/bin/gnome-keyring-daemon --daemonize --login我尝试从终端启动提示而启动的,但没有任何反应。所以还是卡住了。

Ham*_*ner 4

不是对上述问题的直接回答,而是解决核心问题的方法:

停止 gnome-keyring ssh-agent 启动。然后 ssh-agent、ssh-add 和 ssh 按预期工作。(或者至少如我所料)。

要停止 gnome-keyring ssh-agent 启动,请执行以下操作:

sudo mv /etc/xdg/autostart/gnome-keyring-ssh.desktop /etc/xdg/autostart/gnome-keyring-ssh.desktop.disabled
Run Code Online (Sandbox Code Playgroud)