EGit和GitHub的“验证失败”错误


98

我已经在Eclipse Helios上安装了EGit插件,并尝试将其与GitHub帐户一起使用,但是当我尝试对其进行配置时,出现“验证失败”错误。

我一直在搜寻它,但是没有运气...这似乎是我的密码短语存在的问题,但是AFAIK EGit正在寻找正确的位置(/home/user/.ssh/id_rsa),而在by by sshgit控制台客户端上连接都没有问题。

一些博客说URI和Egit的解析器存在问题,但是我仍然没有找到解决方案。


Answers:


140

我的答案可能已经过时,但希望它对某人有用。

  1. 在Eclipse中,转到“ 窗口”>“首选项”>“常规”>“网络连接”> “ SSH2”(或在“首选项”窗口过滤器框中键入“ SSH2”)。

  2. “密钥管理”选项卡中,按 “生成RSA密钥...”按钮。(可选)您可以添加评论(通常是电子邮件地址)并将密码短语添加到密钥中。密码将在GitHub上的身份验证期间使用。

  3. 复制您生成的公共密钥(在“ Generate RSA Key ...”按钮下方的框中)并将其添加到您的GitHub帐户中。
  4. “保存私钥...”按钮将您的私钥RSA密钥保存到文件中。默认情况下,密钥存储在SSH2主目录中(请参见“常规”选项卡)。

而已!现在,您应该可以将代码推送到GitHub存储库。


1
我的私钥没有标准名称(id_rsa),因此无法被识别。我在您指定的首选项窗口中手动添加了它,并且效果很好。
muriloq 2011年

18
我注意到,按照您的描述设置了SSH密钥后,我不应该在身份验证框中更改用户名/密码(我在放置GitHub凭据)。此框中的默认值为username:git,密码为空白。
harschware

1
这对于我使用BitBucket git存储库是有用的,但是我确实必须重新启动Eclipse。
artlung 2013年

8
将用户名保留为git和密码为空终于对我有用。
Mike R

4
这是将生成的RSA密钥添加到github帐户的过程1)登录到github帐户2)转到设置3)在左侧,您将找到SSH密钥,单击它4)然后单击添加SSH密钥(现在粘贴SSH密钥)您生成的)
rajeev

27

我遇到了完全相同的问题,但是我从Eclipse错误报告中找到了解决方法!

必须使用ssh可执行文件[1]的路径设置名为GIT_SSH的环境变量。

例如在Ubuntu Linux(10.10 64bit)上:

> export GIT_SSH=/usr/bin/ssh
> eclipse

之后,按原样推送到GitHub存储库。我用Eclipse Galileo和Indigo进行了测试。

这个问题确实很烦人,解决方案远非如此。目前,至少要使Ubuntu用户永久使用该解决方案,必须将env变量永久使用。可以通过将export命令添加到〜/ .profile或〜/ .bashrc [2]中来完成。例如:

> cd ~
> echo "export GIT_SSH=/usr/bin/ssh" >> .profile

然后重新启动Eclipse才能生效。

资料来源:


我整个星期都在讨论这个问题-在osx下的Eclipse连接到GitHub或Asssembla。您的修复程序对我有用。谢谢。
ianmayo 2011年

在Windows上,openssh对我不起作用。我不得不使用plink。看我的答案。
Piotr Dobrogost 2012年

而且它越来越接近已发布的修复程序。在错误报告的末尾,有人展示了如何手动下载最新的jsch jar文件并手动安装它以使其工作。我将使用此env var解决方案,并等待该jsch jar文件进入实际的Eclipse版本。
crowmagnumb 2012年

解决了我的问题。谢谢。
Pedram

我的天啊。这样的问题使我想知道为什么Android首先使用Eclipse。非常感谢您的提示。那解决了我的问题,而EGit / Eclipse对“
身份

16

我通过选择http作为协议并提供我的GitHub用户名和密码来解决它。


是!与我读过的其他所有文章相反,但这是可行的。(Eclipse Indigo)
Owen B

http或https比ssh更简单
Junchen Liu

是的,但是在某些情况下,您需要使用ssh。例如在使用存储库时需要在BitBucket中进行两因素身份验证。仅在需要两因素身份验证时才能在ssh上工作。
Akshay Mahajan)

10

在花了几个小时寻找解决这个问题的方法之后,我终于通过进行Eclipse论坛上提到的更改而获得了金奖。

脚步:

先决条件:使用默认配置安装了mysysgit。

1.创建文件C:/Users/Username/.ssh/config(将“ Username”替换为Windows 7用户名(例如C:/Users/John/.ssh/config)),并将其放入其中:

Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2.尝试立即在Eclipse中设置远程存储库。

干杯。它应该工作完美。


8

您需要安装msysgit,安装后需要打开Git Bash并在其中输入以下命令:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email gennad.zlobin@gmail.com (your email)
$ ssh-keygen -C "gennad.zlobin@gmail.com" -t rsa (your email)

现在,您生成的密钥已经存在C:\Users\username\.ssh(在Windows 7中)。
接下来,您将公共密钥的内容加载到Github上的项目中。
在Eclipse中,打开Window->Preferences->General->Network->SSH2并设置~/.sshSSH Home。

之后,转到Key Management tab并在此处加载现有密钥~/.ssh

之后,您可以将项目推送到Github(但是我设置了ssh协议,而不是git + ssh)。


非常感谢,但实际上我正在Arch Linux下运行它
tehsis 2010年

5

我通过将密钥添加到ssh解决了相同的问题;

ssh-add ~/.ssh/id_rsa 

然后输入了密码,需要重新启动。


4

对于使用SSH的* nix用户:

确保本地计算机上帐户的用户名与服务器上帐户的用户名没有不同。显然,eGit似乎无法处理此问题。例如,如果您在本地计算机上的用户名是“ john”,而您在服务器上使用的帐户被命名为“ git”,则它根本无法连接(无论如何对我来说)。我发现的唯一解决方法是,确保本地计算机和服务器中的用户名相同。


1
知道还是这样吗?今天晚上我一直在墙上撞头。我的私钥受密码保护,Eclipse / eGit从未要求过密码。当我尝试推送到远程时,Eclipse只会弹出错误“ .ssh id_rsa的org.eclipse.jgit.transport.CredentialItem $ StringType Passphrase”
Vilsepi 2013年


2

我的四分之一:我的SSH密钥是在Cygwin中的C:\ cygwin \ home \ <user> .ssh上设置的,因此我将SSH指向了该文件夹,而不是默认的(Win7)C:\ Users \ <user> \ ssh ,按照以下说明进行操作:http : //wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

并使用了ssh协议,效果很好。但是,尝试使用git协议仍然会给出“ git协议不支持用户”。


2

对于像我一样已经设置了ssh键但仍然会收到错误的人:

确保已设置了远程推送。当我同时收到“ 无法获取远程存储库参考 ”问题时,它为我工作(在“推送...”对话框中显示“ ...密码短语”和“验证失败”)。

前提是您已经:

  1. 使用Github设置SSH密钥(“窗口”>“偏好设置”>“常规”>“网络连接”>“ SSH2”)

  2. 设置你的本地库(你可以按照本指南为)

  3. 创建一个Github存储库(相同指南

...这是您的操作方式:

  • 转到“ Git存储库”视图(“窗口”>“显示视图”>“其他”>“ Git存储库”)
  • 展开您的存储库,然后右键单击Remotes- > “ Create Remote”
  • “远程名称”:来源,“配置推送”:选中-> 单击“确定”
  • 点击“更改...”按钮
  • 粘贴您的git URI并选择协议ssh- > 单击“完成”
  • 现在,单击“保存并推送”,现在您将得到一个密码提示-> 此处输入公共密钥密码(前提是您DID(并且应该)设置公共密钥的密码)-> 单击“确定”
  • 现在,您应该获得一个确认窗口,显示“推送到YourRepository-原点”-> 单击“确定”
  • 推送到上游,但是这次使用“ Configured remote repository”作为您的Destination Git存储库
  • 快去给自己赚杯好咖啡!


1

您是否尝试过在git + ssh上使用ssh协议?即使官方文档告诉我使用git + ssh,我也遇到了同样的问题,并且解决了该问题


1

在Windows上,设置GIT_SSH为msys git附带的openssh无效(Eclipse在提交期间挂起)。将其设置为TortoisePlink可以解决问题(我想原始的plink也可以工作)。现在增加的好处是Eclipse使用了存储在选美中的密钥。


1

我通过选择https作为协议来解决它,然后添加了我的github用户名和密码


1

在拥有存储库的GIT视图中,您将看到一个结构,例如:

  • 分行
  • 标签
  • 参考资料
  • 遥控器
  • 等等...

单击远程服务器,右键单击那里的存储库的URL,然后选择“更改凭据”。



0

我遇到了同样的问题,似乎是由于配置问题。github mac osx应用程序创建了一个名为github_rsa的ssh私钥

在您的Eclipse中,转到 Window > Preferences > Network Connections > SSH2

在常规选项卡中,您应该看到SSH2主页,/Users/<you username>/.ssh您可能会看到id_dsa,id_rsa定义为私钥。

单击“添加私钥”,然后选择github_rsa /Users/<you username>/.ssh


0

如果您拥有PEM文件:在Eclipse中,转到“ 窗口”>“首选项”>“网络连接”>“ SSH2”,然后将PEM文件的路径添加到“私有密钥”,这应该可以解决问题。


0

我也想一次公开Goog​​le代码修复程序,并得到相同的错误。开始使用这个视频,但在保存和发布得到了一个错误。我已经看到与此有关的几个问题。有些是Windows用户,而最幸运的是,因为通常权限没有问题,有些是Linux用户。

我有一台用于移动开发的Mac,经常遇到此问题。此问题的根源是“平台无关”解决方案,该解决方案对Mac不太足够,并且他们无法访问钥匙串,存储证书,.pem文件等的位置。

我只希望不进行任何环境设置或命令行设置,而只是像普通用户一样进行基于GUI的简单单击。

一半由Eclipse Git插件完成,第二部分(推送至Github)由Mac Github完成

好,易于 :)

如果我要开始学习它,则可以使用该本地appp来完成所有操作,我只需要他的推送功能即可。

希望它对Mac用户有帮助。


0

我发现,如果我在github中设置了两步身份验证,则Eclipse无法连接到Github-这是有道理的,因为github中的两步身份验证要求您从SMS中输入数字(而Eclipse不会没有此信息)。

如果这是您的情况,则可以考虑在github中停用两步身份验证,看看是否有帮助。


0

对于现有的ssh密钥,我认为这是Eclipse Juno 3.8中的错误。

我做了什么:

1)通过转到以下窗口来加载现有密钥: 窗口>首选项>“ Search ssh”>密钥管理选项卡>加载现有密钥>选择您已经拥有的私钥

2)点击保存私钥按钮,保存该私钥。我们命名为id_dsa_github

3)现在检查推拉功能是否正常。它应该是。

4)现在,在常规标签中,删除私钥id_dsa_github并通过单击添加私钥按钮添加以前的私钥

现在你很好。我猜,从EGit到注册至少需要花费一秒钟的时间。


0

我遇到了同样的问题。

我认为这与我的凭据和身份验证有关。

最后,我意识到这是我配置的URI不是HTTP变体。

我正在尝试使用HTTP配置将Git的SSH URI推送。

检查您的网址

Git透视图>遥控器>源>配置获取>更改>确保协议是HTTPS,URL是https版本


0

我可以使用控制台来推/拉存储库,但是不能在Eclipse中使用。就我而言,eclipse似乎无法读取我的SSH私钥,我的密钥始于:

-----BEGIN OPENSSH PRIVATE KEY-----

我注意到同事的钥匙始于:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

我认为当前eclipse无法使用这种新密钥(OPENSSH PRIVATE KEY)。

我通过以下方法解决了该问题:使用以下命令重新生成ssh密钥:

ssh-keygen -m PEM -t rsa -b 2048

这将使用旧的方式生成密钥:因此它将以标头开始:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

查看更多信息:

https://github.com/duplicati/duplicati/issues/3360

然后,您可以使用“偏好设置”->“网络连接”->“ SSH2”,再次将密钥加载到eclilpse中,单击“添加私钥”(即使您已经在私钥列表中看到名称,也请选择私钥,因为eclipse必须重新加载)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.