为什么gnome-keyring-daemon需要公共密钥来缓存密码?


8

我有两台Arch Linux机器,它们的设置几乎相同,都在运行/usr/bin/gnome-keyring-daemon --daemonize --login。它们都具有相同的SSH密钥,但是只有一个具有公共密钥。在具有公共密钥的主机上,GNOME密钥环守护程序可以正常工作-我可以在没有任何提示的情况下SSH到其他计算机。在没有公钥的主机上,GNOME Keyring似乎忽略了我已经输入了密码,并且每次都会提示我:

$ ls ~/.ssh/id_rsa.pub
ls: cannot access /home/user/.ssh/id_rsa.pub: No such file or directory
$ ssh some-host exit
Enter passphrase for key '/home/user/.ssh/id_rsa':
$ ssh other-host exit
Enter passphrase for key '/home/user/.ssh/id_rsa':

即使输入密码后,它也不会列出身份

$ ssh-add -l
The agent has no identities.

凭预感复制公钥后,不再提示我输入密码。随后再次移除公钥后,症状又回来了。是否有这种行为的原因,还是仅仅是一个错误?

Answers:


3

从GNOME密钥环文档SSH代理页面

SSH代理会自动在〜/ .ssh中加载具有对应的* .pub配对文件的文件。可以通过ssh-add命令手动加载和管理其他SSH密钥。

因此,id_rsa只有id_rsa.pub存在对应项时,GNOME密钥环才会加载。

您可以使用ssh-keygen私钥文件生成一个

ssh-keygen -y -f id_rsa  > id_rsa.pub

如果您不希望GNOME密钥环id_rsa自动加载,则必须删除id_rsa.pub

我找不到选择此约定的任何技术原因,但这不是bug。


感谢您的参考。不过,我不确定是否同意这不是错误。
l0b0

有趣的事实是,这种行为在我的同事们中随机发生了7年。今天发生在我身上,我终于停在说明所有内容的文档页面上。
hdorio '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.