![如何让 ssh 记住不在默认目录中的未锁定的 ssh 密钥](https://linux22.com/image/1367896/%E5%A6%82%E4%BD%95%E8%AE%A9%20ssh%20%E8%AE%B0%E4%BD%8F%E4%B8%8D%E5%9C%A8%E9%BB%98%E8%AE%A4%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%9C%AA%E9%94%81%E5%AE%9A%E7%9A%84%20ssh%20%E5%AF%86%E9%92%A5.png)
我将私钥/公钥组织在“.ssh”的子文件夹中,名为“keys”。映射由 .ssh/config 文件完成。现在每次使用密钥时,我都必须重新输入密码。
在此更改之前,解锁密钥会根据需要自动记住,这是默认行为(操作系统:Ubuntu)。
答案1
使用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)
完整路径,因此您可以将密钥放在您想要的任何地方。