自从重新安装我的办公室机器后,我遇到使用TortoiseGit访问(特别是推送)到我们的远程服务器的问题。
在我的公司中,中央仓库维护在远程服务器上。在我的Windows 10 PC上安装了Cygwin,Git和TortoiseGit。我也可以访问远程Linux帐户。
不久前,我生成了我的公钥和私钥SSH密钥,并从那时起使用它们。我经常使用Cygwin终端(bash)来访问远程仓库,并且通常使用TortoiseGit来管理提交并检查日志。在过去,我能够使用TortoiseGit访问远程仓库,但现在我无法使其工作。
当我配置客户端的 Git / Remote 窗格以使用HTTP URL时,我可以克隆回购。当我使用GIT URL时,我被要求提供远程服务器的密码。我无法推送这两个网址。
我正在使用 Putty Key 字段中Cygwin的id_rsa.pub
目录中的home/.ssh
密钥(也尝试使用私钥id_rsa
)。此外,在网络窗格中,我将SSH客户端设置为C:\Program Files\Git\usr\bin\ssh.exe
。
所以,既然我的bash流程运行正常,我认为我的TortoiseGit设置有问题。知道我错过了什么吗?
答案 0 :(得分:2)
你在这里混合了几件事:Git for Windows,Cygwin和OpenSSH以及PuTTY。
您有一个OpenSSH密钥,因此您不能将PuTTY与TortoiseGit一起使用或在PuTTY key
- 字段中输入OpenSSH密钥。 (你似乎已经配置了ssh.exe,所以没关系 - 或者你必须将你的OpenSSH密钥转换为PuTTY密钥,参见https://stackoverflow.com/a/32115724/3906760以便使用TortoiseGitPLink)。
您似乎安装了Git for Windows,因为您已从该软件包中选择了已发送的ssh.exe
。这可能会导致不兼容。只需为ssh客户端选择ssh.exe
即可确保使用相应git安装中的ssh.exe
。
我不清楚在TortoiseGit中使用了哪个git.exe
,我假设使用Git for Windows,因为这是推荐用于TortoiseGit。在这里,我假设您面临的问题是,与您的Cygwin环境相比,Git for Windows使用不同的%HOME%
。要解决此问题,请将.ssh
文件夹复制到Windows主目录,或明确定义%HOM%E
以指向您的Cygwin主页。
顺便说一下。不建议使用Cygwin Git,因为它没有通过 - 它没有通过Git测试套件的所有Git测试(参见https://stackoverflow.com/a/32427897/3906760)。
TLDR:使用ssh.exe
作为SSH客户端,确保使用了正确的git.exe
并确保.ssh
- 文件夹位于正确的%HOME%
。