如何使ssh记住解锁的ssh-keys不在默认目录中


0

我将私有/公钥构建在名为“keys”的“.ssh”子文件夹中。映射由.ssh / config文件完成。现在我每次使用它时都必须为每个键重新键入密码。

在此更改之前,解锁的密钥会根据需要自动记住,作为默认行为(OS:Ubuntu)。

Answers:


0

使用keychain一个简单的ssh-agent包装器来处理这个问题。

添加到您的~/.bashrc

eval $(keychain --clear --eval id_rsa id_dsa id_ecdsa other.id_rsa )

这样,您只需在登录时输入一次密码即可。您仍然可以像往常一样使用代理直接手动添加和列出密钥:

$ ssh-add -l
4096 10:93:fe:6c:2b:36:xx:be:78:xx:bd:xx:b7:f9:0f:46 /home/user/.ssh/id_rsa (RSA)
1024 86:dc:ed:e0:c8:f4:99:bc:99:ee:55:xx:ac:51:e6:cb /home/user/.ssh/id_dsa (DSA)
521 28:xx:f4:d6:10:xx:40:4b:cd:xx:ef:e2:fc:8f:0b:xx /home/user/.ssh/id_ecdsa (ECDSA)
4096 5d:5a:xx:41:xx:2e:ab:ae:xx:ff:5c:47:xx:3a:cf:xx /home/user/.ssh/other.id_rsa (RSA)

--eval参数keychain(1)接受完整路径,因此您可以将密钥放在任何您想要的位置。


这个解决方案是否或多或少等同于在bashrc中手动添加密钥ssh-add?期望的行为是在需要密钥(按需)时请求密码短语并存储以用于后续任务。
JD3 2013年

keychain是如上所述的ssh-agent包装器,因此它是一种不必ssh-agent直接使用的便捷方式。优势是为您处理ssh-agentgpg-agent如果有必要)。您可以从登录时自动添加的某些键开始,然后使用按需添加其余键ssh-add。这个解决方案,加上一个~/.ssh/config文件,指定每个主机/用户的用户键,这是我发现使用起来更舒适。
dawud 2013年
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.