使用Git Extensions无法推送到代码仓库

18

我现在因为这个问题感到非常抓狂。我已经下载并安装了GIT,同样的也对GIT扩展程序进行了相同的操作(因为我们将在VS2010中使用它),一切都很顺利。我提交了更改,然后发现我的团队成员无法从网站上检出。看起来我需要将我的更改推送到服务器上。

所以问题来了。当我尝试推送到github.com网站时,我会收到以下错误消息:

"认证错误 命令的执行结果导致错误,通常意味着PuTTy认证代理程序未运行或正确的私钥未被加载(尚未)。

当密钥被加载后,您可以按重试。 '重试' '加载SSH密钥' '中止'"

我已经创建了一个SSH密钥,所以我尝试加载它。我浏览我的密钥,然后点击“加载”,然后点击“重试”。然后,同样的错误出现了。

好吧,那么这不起作用。我去文件菜单远程 -> PuTTY -> 启动身份验证代理。我得到一个错误,说它已经在运行,所以应该没问题了。转到Remotes -> PuTTY -> 生成或导入密钥,会显示我没有加载或任何密钥,但是我认为这也应该没问题。

远程 -> 管理远程存储库。我可以看到我的repo的URL和我的.ssh密钥的位置。点击“测试连接”会给我以下错误:

"使用用户名'git' 致命错误:断开连接:没有可用的身份验证方法"

所以我在这里,由于上述问题无法推送到服务器。我总是自己解决问题或在Google上找到解决方案,但是这次我被束缚住了,它就是不起作用。任何能帮助我摆脱这个源代码管理灾难的东西都很棒,因为我现在几乎可以杀死任何人。

谢谢!

编辑:需要注意的是,问题出现在推送告诉我类似于“无法验证服务器是否为实际服务器,因为我不知道服务器的密钥”。然后我尝试解决问题,导致出现了上述情况。也许这可以帮助解决问题。

4个回答

20

首先,我不知道这是否与此有关,但是做一下这个操作不会有害。前往 Plugins -> Settings -> Github,并在那里输入您的详细信息。我发现那里是空白的。解决我的问题的方法如下:在 C:\Users\<my name>\.ssh 文件夹中,我的私钥是由 PuTTY 程序生成的 (.pkk 文件)。我在那里所做的事情是错误的,我不应该创建一个新的密钥。

接下来,前往 <Git Extensions> Remotes -> PuTTY -> Generate or import key。现在,转到 Conversions -> Import key。浏览到 .ssh 文件夹,找到 'id_rsa'(它在这里被命名为完全相同,没有扩展名)。选择它,然后按“打开”。输入密钥密码(这是 Git 用于与 GitHub 服务器通信的密码,因为它是显示的)。然后,选择保存私钥,并将其保存在某个位置(我保存在 .ssh 文件夹中)。

现在,继续推送您的更改。按 <Manage>。然后,浏览到您新创建的私钥。然后按“测试连接”。对我而言,它有效,显示了“使用用户名 'Git'\n Hi vname>'等。然后按 <Save>,然后点击 <Push>。对我而言,它就有效了。


1
+1 感谢出色的指导。顺便说一下,最新的 Git Extensions 中不再有“Remotes”菜单,已被替换为“工具”。 - Withheld
将OpenSSH id_rsa密钥转换为Putty .ppk的好方法。谢谢! - vezenkov
那对我不起作用。按下测试连接显示“使用用户名”git“致命错误:断开连接:没有可用的支持身份验证方法(服务器发送:公钥)”。 - Dariux
在评论中,我写下了我如何解决这个问题的方法。https://dev59.com/YW445IYBdhLWcg3wTIjm - Dariux

10
您可以尝试使用OpenSSH替代PuTTY。
在GitExtensions主窗口中打开设置->设置菜单,选择Ssh选项卡,并在Specify which ssh client to use下选择OpenSSH

1
嗨,感谢您的回答。我已经找出了问题,并在我的第一篇帖子的评论部分发布了解决方案。在别人的建议下,我创建了一个新的答案并标记为已回答。再次感谢! - Wotuu

0

我也使用Git Extensions,但只是因为GitHub的东西不支持32位Win... 我发现最简单的推送方式是使用Git GUI本身,你已经安装了它(在类似“C:\Program Files\Git”这样的地方,但应该在“Git”文件夹下的开始菜单中),所以我在Git Extensions中工作,拉取、克隆、合并、提交和切换到主版本,然后我只需打开Git GUI,打开我的存储库并将其推送(主版本 - 我还没有制作其他版本)到GitHub! 我知道这不是解决程序无法工作的方法,但它非常简单,而且您不必安装任何其他东西 :) 希望我能帮助到某些人!


-1
如果您想使用PuTTY... 生成新的密钥:远程-> PuTTY -> 生成或导入密钥,它就可以工作了。

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