如何使用ssh设置tortoisegit不需要密码

时间:2012-04-15 15:15:25

标签: git tortoisegit

我无法使用我提供的ssh密钥(使用PuttyGen创建)获取git / tortoisegit。在命令提示符中,我收到permission denied错误,在TortoiseGit UI中,系统会提示您输入密码。我尝试了this SO question,但如上所述,我使用PuttyGen创建,使用我的密钥加载运行Pageant,并配置为使用TortoisePlink。

然后我找到this SO question,并尝试使用git目录中的ssh,TortoiseHG中的TortoisePlink(用于Bitbucket / Mercurial),如上所述,已经尝试过TortoiseGit中的本地TortoisePlink。 / p>

哦,我确实在我的Git帐户中设置了我的ppk,以及在TortoiseGit的Git-> Remote部分

那么,我错过了什么?

7 个答案:

答案 0 :(得分:14)

检查您的原始网址是什么。

右键单击项目文件夹 TortoiseGit - > Settings - >选择Git - > Remote并选择原点条目。

检查网址是否以ssh://开头并且您的私钥已加载。

如果网址以https://开头,则每次都会询问您的密码。

希望这有帮助。

答案 1 :(得分:4)

我也无法使用github / tortoisegit。在Linux上使用命令行中的git运行正常。然后我按照这里描述的那样使用我的用户名/密码:

http://www.programmoria.com/2012/02/saving-tortoisegit-password.html

和其他地方。这不是一个真正的解决方案(对不起),但实现相同的解决方法:自动身份验证,而无需输入您的用户名/密码。 _netrc文件与私钥一样安全/不安全,也可以存储在计算机的某个位置,因此我认为这是一个可接受的解决方案。当然欢迎对此发表评论。

答案 2 :(得分:4)

一些Git服务器在身份验证方面有些违反直觉(IMHO)。例如,Github docs说:

  

所有连接必须作为“git”用户。

因此,您必须连接到ssh://<yourname>@github.com...,而不是尝试连接到ssh://git@github.com...

我不再需要密码,TortoiseGit现在在完成推送操作后显示Success

答案 3 :(得分:1)

您的OpenSSH服务器上的帐户是否知道您应该使用您的公钥进行授权?

使用PuTTyGen加载您的密钥。您将在“用于粘贴到OpenSSH authorized_keys文件的公钥”下看到一个只读文本区域。复制那里的内容。

使用PuTTy SSH进入SSH服务器。使用编辑器打开~/.ssh/authorized_keys文件,然后将复制的文本粘贴到新行中并保存。 ~/.ssh目录可能尚不存在。在这种情况下,请在编辑该文件之前执行mkdir ~/.ssh

答案 4 :(得分:1)

我在v1.8.4上也遇到了同样的问题,然后我将ssh客户端切换到plink,现在工作正常。 TortoiseGit设置 - &gt;网络 - &gt; SSH客户端

plink与标准腻子包中的peagent和其他好东西一起分发

显然TortoiseGit的某些版本中存在错误(特别是TortoisePlink) see this answer

答案 5 :(得分:0)

我正在使用git 2.7和tortoisegit 1.8.16 这是我做的,以避免需要密码,它适用于我的情况

右键单击您的项目文件夹TortoiseGit - &gt;设置 选择Git - &gt;远程并选择原点条目 将网址从https://github更改为ssh:// git @ github ...

答案 6 :(得分:0)

使用Tortoise 2.2.0.0,您需要做一些事情。在远程选项卡上,您可以删除已有的http源,或者需要添加秒,使用ssh://并选中ssh的“Push Default”复选框,以便Tortoise将其用于推送默认情况下(以及我的情况下的https来源)​​。

只有ssh需要指定密钥,然后当你推送时,它应该默认为你的新ssh origin作为目的地,而不是要求你的用户名和密码。

显然,您需要知道您的网址中有哪些用户。例如,在Visual Studio Team Services中,它是VSTS帐户的名称(不是帐户持有者!)。您可能还需要端口号。

这就是我从头开始设置的所有工作,并且工作正常。