经过大量的谷歌搜索和故障排除后,我相信我已经确定Cygwin在SSH服务时不会发送其SSH私钥,除非你明确告诉它。我可以使用IdentityFile行在我的SSH配置文件中执行此操作,但是在使用git时我不知道如何执行此操作。
这次,我特意试图推送给GitHub。我的SSH密钥已添加。以前,在设置配置文件并添加IdentityFile行之前,我无法进行SSH操作。现在我可以成功SSH到GitHub,但不能git push。
任何人都知道怎么解决这个问题?
非常感谢!
编辑:要清楚,当我尝试git push时,我收到以下错误:
$ git push
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
但我可以通常SSH:
$ ssh github
Hi ______! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
Edit2 with solution:
用户'Cupcake'建议将我的密钥添加到ssh-agent。我跑了:
$ ssh-add <private key path>
现在它有效。谢谢!
答案 0 :(得分:1)
我个人使用PuttyCyg直接将Putty添加到我的Cygwin安装中。这样可以让我访问Putty的ssh实现,以及Putty的终端,我发现它比Cygwin更易于配置和减少错误。
有关如何设置PuttyCyg以及一些注释和配置文件的说明列表,请参阅effective-cygwin GitHub页面。