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

10

我按照这里的教程在 Window 7 上的 cygwin 中设置 SSH,以便在 Github 上进行操作。但是每次我使用 git push origin master 命令时,都会提示如下:

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

这很让人烦恼,因为这违反了首次设置 SSH 的目的。我不理解为什么它一直要求我输入密码,因为当我用 Mac 进行同样操作时,一切都可以很好地运行。

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


是的,每次我打开一个新的Cygwin窗口并且每次执行git push时都会询问我。 - mynameisJEFF
1个回答

15
将以下内容添加到您的~/.bash_profile文件中。当bash启动时,它会执行两个操作:1. 启动ssh-agent(否则它可能会在每次推送/拉取时重复生成并死亡);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

参见:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接