EGit和GitHub出现“Auth Failed”错误

时间:2010-08-30 15:26:04

标签: eclipse github egit

我在Eclipse Helios上安装了EGit插件,我正在尝试将它用于我的GitHub帐户,但是当我尝试配置它时,我收到“Auth Failed”错误。

我一直在谷歌搜索但没有运气......这似乎是我的密码问题,但AFAIK EGit正在寻找正确的地方(/home/user/.ssh/id_rsa),我在连接方面没有问题{ {1}}或ssh控制台客户端。

有些博客说这是URI和Egit解析器的问题,但我还没有找到解决方案。

23 个答案:

答案 0 :(得分:131)

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

  1. 在Eclipse中转到 Window> 偏好>一般>网络连接> SSH2 (或者只输入“SSH2”) 偏好窗口过滤器框。)

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

  3. 复制生成的公钥(在 在“生成RSA密钥......”下面的框 按钮)并将其添加到您的GitHub 帐户。
  4. “保存私钥...”按钮 将您的私人RSA密钥保存到 文件。默认情况下,密钥存储在 SSH2主目录(参见“常规”) 标签)。
  5. 就是这样!现在您应该能够将代码推送到GitHub仓库。

答案 1 :(得分:26)

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

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

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

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

之后推送到GitHub存储库工作就像他们应该的那样。我用Eclipse Galileo和Indigo进行了测试。

这个问题非常烦人,而且解决方案还不是很好。现在,使解决方案成为永久性的,至少Ubuntu用户必须使env变量永久化。可以通过将导出命令添加到〜/ .profile或〜/ .bashrc [2]来完成。例如:

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

然后重启Eclipse以使其生效。

来源:

答案 2 :(得分:15)

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

答案 3 :(得分:9)

在花了好几个小时寻找这个问题的解决方案后,我终于通过Eclipse Forum上提到的更改来打动黄金。

<强>步骤:

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

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

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

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

干杯。它应该完美无缺。

答案 4 :(得分: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并将您的~/.ssh设置为 SSH主页

之后转到Key Management tab加载现有密钥 - 在~/.ssh中设置您的私钥。

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

答案 5 :(得分:5)

我将我的密钥添加到ssh中解决了同样的问题;

ssh-add ~/.ssh/id_rsa 

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

答案 6 :(得分:4)

对于使用SSH的* nix用户:

确保您本地计算机上的帐户用户名与服务器上帐户的用户名没有区别。显然,eGit似乎无法处理这个问题。例如,如果您本地计算机上的用户名是“john”,并且您在服务器上使用的帐户名为“git”,则无法连接(对我来说无论如何)。我发现的唯一工作是确保本地计算机和服务器中都有相同的用户名。

答案 7 :(得分:3)

答案 8 :(得分:2)

我的四个:我的SSH密钥是在Cygwin中设置的,位于C:\ cygwin \ home \&lt; user&gt; .ssh,所以我将SSH指向此文件夹而不是默认(Win7)C:\ Users \&lt ; user&gt; \ ssh,根据以下说明:http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

并使用ssh协议,它工作正常。尽管如此,尝试使用git协议仍然提供“git协议不支持用户”。

答案 9 :(得分:2)

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

确保您设置推送遥控器。当我在“推送...”对话框中同时获得无法获取远程存储库引用 - 问题(“...密码短语...”和“验证失败”)时,它对我有用。

如果你已经:

  1. 使用Github设置SSH密钥(窗口&gt;首选项&gt;常规&gt;网络连接&gt; SSH2)

  2. 设置您的本地存储库(您可以关注this guide

  3. 创建了一个Github存储库(same guide

  4. ...这是你如何做到的:

    • 转到 Git存储库视图(窗口&gt;显示视图&gt;其他&gt; Git存储库)
    • 展开您的存储库并右键单击遥控器 - &gt; “创建远程”
    • “远程名称”:原点,“配置推送”:已选中 - &gt; 点击“确定”
    • 点击“更改...”按钮
    • 粘贴您的git URI 并选择协议 ssh - &gt; 点击“完成”
    • 现在,点击“保存并推送”,现在您应该获得密码提示 - &gt; 在此处输入公钥密码(前提是您已经(并且应该)为您的公钥设置密码) - &gt; 点击“确定”
    • 现在你应该得到一个确认窗口,上面写着“推送到 YourRepository - origin” - &gt; 点击“确定”
    • Push to upstream ,但这次使用“已配置的远程存储库”作为目标Git存储库
    • 为自己喝一杯好喝的咖啡!

答案 10 :(得分:1)

您是否尝试过在git + ssh上使用ssh协议? 我有同样的问题,这解决了它,即使官方文档告诉使用git + ssh

答案 11 :(得分:1)

在Windows上,将GIT_SSH设置为msys git附带的openssh不起作用(Eclipse在提交期间挂起)。将它设置为TortoisePlink解决了这个问题(我猜原始的plink也能正常工作)。现在额外的好处是Eclipse使用存储在选美中的密钥。

答案 12 :(得分:1)

我使用每晚版本更新了插件:http://www.eclipse.org/egit/download/

通过更新,它对我有用。 (Eclipse Helios,Mac OS X)

答案 13 :(得分:1)

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

  • 分支
  • 标记
  • 引用
  • 遥控器
  • 等...

点击遥控器,右键点击存储库的网址,然后选择“更改凭据”。

答案 14 :(得分:1)

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

答案 15 :(得分: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

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

答案 16 :(得分:0)

我遇到了同样的问题。

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

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

我试图通过HTTP配置推送到Git的SSH URI。

在以下位置检查您的URL

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

答案 17 :(得分:0)

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

我做了什么:

1)转到:加载现有密钥: 窗口&gt;偏好&gt; &#34;搜索ssh&#34; &GT;密钥管理标签&gt;加载现有密钥&gt;选择您已拥有的私钥

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

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

4)现在在常规标签中,删除私钥 id_dsa_github ,然后点击按钮添加私钥

添加您之前的私钥

现在你很高兴。我想,它至少花了一次时间从EGit到注册做所有事情。

答案 18 :(得分:0)

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

如果这是您的情况,您可以考虑在github中取消激活您的两步验证,看看是否有帮助。

答案 19 :(得分:0)

我想公开一次我也是谷歌代码修复并得到同样的错误。 从This视频开始,但在保存和发布时出错。 我已经看到有几个问题。有些是Windows用户,那些是最幸运的,因为通常没有权限问题,有些是Linux用户。

我有一个用于移动开发的mac,并经常遇到这个问题。这个问题的根源是“独立于平台”的解决方案,它对mac不够关心,他们无法访问钥匙串,其中存储了证书,.pem文件等。

我想要的只是不做任何环境设置,也不是命令行,只是简单的基于GUI的点击,就像普通用户一样。

半部分是使用Eclipse Git插件完成的,第二部分(推送到Github)是使用Mac Github完成的

美好而轻松:)

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

希望它能帮助mac用户一次。

答案 20 :(得分:0)

如果您有PEM文件:在Eclipse中转到 Window&gt;偏好&gt;网络连接&gt; SSH2 ,然后将PEM文件的路径添加到“私钥”,这应该可以解决问题。

答案 21 :(得分:0)

我遇到的问题似乎与配置问题有关。 github mac osx app创建了一个名为github_rsa的ssh私钥

在Eclipse中转到Window > Preferences > Network Connections > SSH2

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

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

的github_rsa

答案 22 :(得分:0)

我在Eclipse forums上发现了一条帖子,为我解决了这个问题。