我按照教程here在窗口7上的cygwin中为github设置ssh。但是,每次执行git push origin master
时,我都会收到以下提示:
Enter passphrase for /cygdrive/c/Users/mynameis/.ssh/id_rsa:
这太烦人了,因为它首先打败了设置ssh的目的。我不明白为什么它一直提示我输入密码,因为当我用我的Mac做同样的事情时,一切都运行得很顺利。
我尝试了其他解决方案:将eval ssh-agent -s
添加到.bashrc
。但问题仍然存在。 我怀疑该问题与Windows 7上的cygwin中的ssh-agent
或ssh-add
有关。如何解决此问题?
答案 0 :(得分:12)
将以下内容添加到~/.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
另见: