macOS 10.12 Sierra不会忘记我的ssh密钥文件密码


25

首次创建并使用新的加密id-rsa密钥文件后ssh-keygen,我无法使macOS忘记密码短语。这类似于如何使OS X忘记ssh密钥密码短语问题,但变得更糟。

我尝试重新启动,杀死ssh-agent,锁定了我所有的钥匙串,但它似乎仍存储在某个地方。但是,我找不到任何钥匙串。这似乎是非常不安全的。从未使用Keychain / ssh-agent删除的SSH私钥密码的答案也无济于事。

实际上,以前出现的询问您是否要存储密码短语的对话框似乎不再存在。


您是否检查过它是否真的加密过?
约翰·基茨

是的 可以肯定的是,就像我第一次使用ssh时要求输入密码。有人真的可以重现吗?
hogliux

好吧,它也可以在我的设置中使用,也就是ssh / ssh-agent的配置方式。
约翰·基茨

如果您单击复选框以告知macOS将密码短语存储在钥匙串中,那么这是正确的。但是,如果您不单击该复选框,则macOS应该始终要求输入密码。但是,即使您单击了它,也始终可以在钥匙串实用程序中再次将其删除。自Sierra以来,该对话框不再显示,并且钥匙串实用程序中没有任何条目。
hogliux

这是我正在谈论的对话框,该对话框似乎不再存在:dribin.org/dave/resources/pictures/ssh_leopard_dialog.png
hogliux 2016年

Answers:


27

要禁用将密码短语存储在钥匙串中,应在〜/ .ssh / config文件中添加以下几行:

Host *
UseKeyChain no

如果您已经将密码短语存储在钥匙串中,则可以使用以下命令将其删除:

cd ~/Library/Keychains/<UUID>/
sqlite3 keychain-2.db 'delete from genp where agrp="com.apple.ssh.passphrases"'

如果您希望在OS X El Capitan或更早的版本中有类似的行为(即,密码存储直到注销或重新启动),只需添加到〜/ .ssh / config中:

AddKeysToAgent yes

您不需要启动ssh-agent。


1
这个答案可以永久解决问题!因此,我将其标记为正确答案。谢谢!
hogliux

建议编辑:改变Library/Keychains/<UUID>/~/Library/Keychains/<UUID>/为清楚起见:)
穆罕默德·哈菲兹

建议的编辑已被接受:)
mbamac

20

感谢克莱夫,我对这个新的“功能”有了更好的了解。键入密码短语时,Sierra会将其添加到“钥匙串”中,而不添加到ssh-agent中。如果您的身份不在ssh-agent中,则无法使用进行管理ssh-add。要管理(即删除)从钥匙扣你的身份,你需要你的身份加入到ssh-agent使用ssh-add。将身份添加到后,ssh-agent您可以ssh-add -K -d将其从ssh-agent和钥匙串中删除。如果您希望在每次使用ssh时将自己的身份添加到ssh-agent中,请添加:

AddKeysToAgent yes

给你.ssh/config。这样可以确保ssh-agent始终拥有您的身份。


只是跟进。如果在.ssh / config中添加“ UseKeyChain no”,它将阻止Keychain添加密码。您要在ssh-agent中保持“ AddKeysToAgent yes”,它将保留您的密码短语,直到您重新启动或使用ssh-add -d。
Gene Frenkler '16

请注意,这需要使用Apple随附的OpenSSH。这个补丁不包括在家庭酿造作为homebrew/dupes/openssh: stable 7.3p1
瑞恩·吉本斯

3
ssh-add -K -d

这样可以删除以前存储在钥匙串中的密码短语。从macOS 10.12 Sierra开始,要避免再次将密码短语存储在钥匙串中,请务必先进行操作ssh-add


是。这曾经可以在macOS Sierra的早期版本上使用。但现在行不通了。macOS Sierra仍然记得该密码。
hogliux

1
好。更多调查。它确实会忘记一次,但是在任何地方(ssh,scp,git等)使用它后,它将直接回到钥匙串中。某个陌生人直接给我发了电子邮件,发现该密码短语似乎存储在〜/ Library / Keychains / <SOME-UUID> /keychain-2.db中。但是,即使锁定了我的登录钥匙串(和所有其他钥匙串),os x在访问密码时也不会要求我提供钥匙串密码。确实看起来不对。
hogliux

确实,在Sierra中,密码短语似乎保存在该钥匙串位置中,而不是通常的登录钥匙串中。
m1keil
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.