我阅读并遵循了一些有关如何设置ssh代理的在线文档,这样就不必在每次ssh到远程计算机时都输入密码。
但是,在ssh-agent的帮助下,ssh-add
每次重新启动Shell时我仍然需要做。在ssh-add
随后要求我输入密码解锁私钥。
Enter passphrase for key '/home/xx/.ssh/id_rsa':
而不是输入我的远程计算机密码,而是要求我输入私钥的密码。这就像走出炼狱,然后发现自己陷入了地狱。看来id_rsa只是在会话中临时添加到ssh-agent中,因为每次我登录并键入时ssh-add -l
。我得到:
The agent has no identities.
请问如何将密钥(id_rsa)永久存储在ssh-agent中?谢谢
编辑:这就是我所做的ssh-agent
。我将以下代码块附加到~/.bash_profile
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
ssh-add
有持续时间超过shell窗口中,你在键入它的作用。
ssh-agent
放在了帖子中。