如何解决TortoiseGitPlink致命错误?

32

我之前在Windows 7上使用beanstalk和Git,现在我换了一台Windows 8.1的新系统。我已经在新系统中配置了Git和Tortoisegit,本地提交正常,但是当我推送到线上时出错:

Disconnected: No supported authentication methods available (Sever sent: public key)

我添加了SSH密钥,但在Windows 8.1上是否会出现任何问题?谢谢


2
请确保您的远程URL以“git@”开头。 - Luke
9个回答

77

我打开了TortoiseGit > 设置 > 网络 并在SSH 客户端:这一部分中,将TortoiseGitPlink.exe替换为ssh.exe。 现在它可以正常工作了。


32
ssh.exe 可在 C:\Program Files\Git\usr\bin 中找到。 - Ron Rebennack
6
ssh.exe 也可以在 C:\Program Files (x86)\Git\bin\ssh.exe 找到。 - justinl
2
在我的情况下,这个设置看起来根本无法更改。但是有一个诀窍:应该重新安装TortoiseGit,并在过程结束时(当安装程序建议您进行初始设置时)选择OpenSSH而不是TortoiseGitPlink.exe。这将在设置中提供所需的“ssh.exe”。 - Jordan
2
ssh.exe每次都要求输入密钥密码。我能否让它只在重启后询问?(这样它的行为就像TortoiseGitPlink.exe一样。) - Antonín Procházka
1
不需要指定ssh.exe的完整路径。 - MrTux
显示剩余2条评论

13

或者从TortoiseGit文件夹(通常是C:\Program Files\TortoiseGit\bin)运行Putty身份验证代理(Pageant.exe),并手动将PuttyKey添加到应用程序中。


5
此错误表示服务器需要公钥身份验证,但客户端未提供密钥。
默认情况下,TortoiseGit使用基于Putty Link的TortoiseGitPLink。因此,需要将密钥存储在Putty格式中,并且
  • 在Putty会话中进行配置(参见https://tortoisegit.org/docs/tortoisegit/tgit-ssh-howto.html);或者
  • 在Putty代理中加载(如果启用了加载SSH密钥,则TortoiseGit会执行此操作;也可以通过启动Putty身份验证代理(可以在开始菜单或TortoiseGit安装文件夹中找到),然后加载您的密钥进行手动加载;还有其他替代方案,如KeePass KeyAgent集成)。
但是,如果您已经配置了OpenSSH密钥,也可以通过在TortoiseGit -> 设置 -> 网络中将SSH客户端设置为ssh.exe来使用OpenSSH。

如果已安装Git命令行工具,则可以使用C:\ Program Files \ Git \ usr \ bin \ ssh.exe - Nathan Moinvaziri
当从TortoiseGit调用时,不需要完整路径,因为ssh.exe在%path%上。 - MrTux

2
在Windows 8.1和TortoiseGit 2.1.0.0上,将SSH客户端更改为"ssh.exe"可以解决此问题。

2
请检查位于C:\Program Files\TortoiseGit\bin下的pageant.exe是否正在运行,并添加密钥。

1

对我来说,这个错误出现在Windows 10上。 由于本地项目名称与Git存储库不同,它会导致此错误。 在进行了新的克隆之后,它开始正常工作。


1

TortoiseGit 有时可能会卸载您的 Putty 密钥。

只需打开 TortoiseGit -> 设置 -> Git -> 远程

然后重新加载您选择的远程连接(例如 origin)的 Putty 密钥。


0
在Windows中,配置的Pageant密钥被删除了。因此,我添加了新的密钥。
TortoiseGit->选择Pageant->您可以添加之前保存的私钥。
对我来说这很有效。

0
我收到了这个错误,因为我的密钥代理(KeePass KeyAgent插件)没有正确加载密钥。添加了正确的密钥后一切正常了。

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