我注册了几个密钥:
$ ssh-add -l
4096 cd:43:96:9e:0c:9a:38:ae:d9:96:f0:c5:d1:bf:9d:96 alex@sunny2 (RSA)
2048 4c:eb:fc:6b:ab:a0:ff:99:c3:ff:13:0a:95:2a:68:70 ███████ (RSA)
4096 01:cc:8d:c9:3c:ca:cf:39:93:57:e5:36:91:30:c2:94 ██████(RSA)
4096 87:b3:05:9a:68:6a:2b:be:1f:6f:ce:1b:34:50:c9:01 ██████████(RSA)
2048 37:d7:c6:08:65:9e:d4:8e:57:a2:05:36:71:e3:0b:13 ███ (RSA)
2048 3c:62:aa:4e:86:6d:83:b0:f7:b8:fb:0a:db:c4:67:3b ██████ (RSA)
1024 a4:1b:cb:c9:a0:99:19:80:67:e2:1b:14:5b:7e:17:cf ███████ (RSA)
我尝试ssh-add -d
██████ 有选择地删除,并ssh-add -D
删除所有键。
这似乎不起作用。我执行后ssh-add -D
,的输出ssh-add -l
与之前相同。
例如,我尝试了ssh-add -d alex@sunny2
,以及密钥文件的完整路径,在此示例中为~/.ssh/alex_rsa
。
我也尝试了“wildcard-remove” ssh-add -d ~/.ssh/*
。
有趣的是,我得到了确认,密钥已被删除:
Identity removed: .ssh/alex_rsa ( alex@sunny2)
但ssh-add -l
之后再次列出所有密钥文件,因此删除时似乎出了问题。或者,存在某种机制可以立即再次添加密钥。
$ cat ~/.ssh/config
Host *
ServerAliveInterval 240
Host 192.168.0.107
PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic
Host github.com
HostName github.com
IdentityFile ~/.ssh/alex_rsa
SSH 版本是:
$ ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8, OpenSSL 1.0.1f 6 Jan 2014
答案1
是的,可能存在一种机制,可以将密钥添加到您的密钥环中。例如,在我的计算机(Ubuntu 16.04LTS)上,我可以看到以下 PAM 配置:
blafasel@localhost:~$ grep -R gnome_keyring /etc/pam.*
/etc/pam.d/lightdm-greeter:auth optional pam_gnome_keyring.so
/etc/pam.d/lightdm-greeter:session optional pam_gnome_keyring.so auto_start
/etc/pam.d/gnome-screensaver:auth optional pam_gnome_keyring.so
/etc/pam.d/common-password:password optional pam_gnome_keyring.so
/etc/pam.d/lightdm:auth optional pam_gnome_keyring.so
/etc/pam.d/lightdm:session optional pam_gnome_keyring.so auto_start
/etc/pam.d/unity:auth optional pam_gnome_keyring.so
这意味着,如果我使用 启动 X 会话,lightdm
此会话将有权访问 提供的密钥gnome-keyring-daemon
。这些密钥通常包括~/.ssh/
登录时读取的所有密钥。
编辑:如果您运行的是 Ubuntu 16.04 或其他运行 gnome 的系统(通过 验证ps ax|grep keyring
),则您可以使用gnome-keyring-properties
它来切换会话集成。这样下次登录后将不再提供密钥。
答案2
杀
gnome-keyring-daemon
$ ps ax | grep keyring 1627 ? SLl 0:01 /usr/bin/gnome-keyring-daemon --daemonize --login 17218 pts/2 S+ 0:00 grep --color=auto keyring
$ 杀死1627
重启 ssh
$ eval $(ssh-代理)
现在所有身份都被删除了
$ ssh-add -l 代理没有身份。
答案3
您拥有哪个版本的 OpenSSH(以及 ssh-add)?
矿井工程:
$ ssh-add -l
... user@host (RSA)
$ ssh-add -D
All identities removed.
$ ssh-add -l
The agent has no identities.