不断提示输入 .ssh/id_rsa 的密码

Keep being prompted to enter passphrase for .ssh/id_rsa

我在 Window 7 上按照教程 here 在 cygwin 中为 github 设置了 ssh。但是,每次 git push origin master 时,我都会收到提示以下:

Enter passphrase for /cygdrive/c/Users/mynameis/.ssh/id_rsa:

这太烦人了,因为它违背了最初设置 ssh 的目的。我不明白为什么它一直提示我输入密码,因为当我用我的 Mac 做同样的事情时,一切都运行得很好很顺利。

我尝试了其他解决方案,例如:将 eval ssh-agent -s 添加到我的 .bashrc 中。但问题仍然存在。 我怀疑问题与 Window 上 cygwin 中的 ssh-agentssh-add 有关 7. 我怎样才能解决这个问题?

将以下内容添加到您的 ~/.bash_profile。当 bash 启动时,这会做两件事:1. 启动 ssh-agent(否则它可能会为每个 push/pull 生成并消亡)和 2. 告诉代理记住您的密码。在某些 Linux 发行版中,这种情况会自动发生,不幸的是,Cygwin 并非如此。

## only ask for my SSH key passphrase once!
#use existing ssh-agent if possible
if [ -f ${HOME}/.ssh-agent ]; then
   . ${HOME}/.ssh-agent > /dev/null
fi
if [ -z "$SSH_AGENT_PID" -o -z "`/usr/bin/ps -a|/usr/bin/egrep \"^[ ]+$SSH_AGENT_PID\"`" ]; then
   /usr/bin/ssh-agent > ${HOME}/.ssh-agent
   . ${HOME}/.ssh-agent > /dev/null
fi
ssh-add ~/.ssh/id_rsa

另请参阅: