EGit 和 GitHub 出现“Auth Failed”错误

Posted

技术标签:

【中文标题】EGit 和 GitHub 出现“Auth Failed”错误【英文标题】:"Auth Failed" error with EGit and GitHub 【发布时间】:2011-04-05 20:00:13 【问题描述】:

我已经在 Eclipse Helios 上安装了 EGit 插件,我正在尝试将它与我的 GitHub 帐户一起使用,但是当我尝试对其进行配置时,我收到“Auth Failed”错误。

我一直在谷歌上搜索它,但没有运气......我的密码似乎有问题,但 AFAIK EGit 正在寻找正确的位置 (/home/user/.ssh/id_rsa),我通过 ssh 连接没有问题或git 控制台客户端。

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

【问题讨论】:

EGit - SSH Fails at Passphrase (when connecting to GitHub) 的可能重复项 【参考方案1】:

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

    在您的 Eclipse 中转到 Window > 首选项 > 常规 > 网络连接 > SSH2(或者直接输入“SSH2” 首选项窗口过滤框)。

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

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

就是这样!现在您应该能够将您的代码推送到 GitHub 存储库。

【讨论】:

我的私钥没有标准名称 (id_rsa),因此无法识别。我在您指向的首选项窗口中手动添加了它,并且效果很好。 我注意到,在按照您的描述设置 SSH 密钥后,我不应该更改身份验证框中的用户名/密码(我正在输入我的 GitHub 凭据)。此框中的默认值是用户名:git,密码为空。 这对我来说适用于 BitBucket git 存储库,但我确实必须重新启动 Eclipse。 将用户名保留为 git 并将密码留空终于对我有用。 这里是将生成的 RSA 密钥添加到您的 github 帐户的过程 1) 登录到您的 github 帐户 2) 转到设置 3) 在左侧您会找到 SSH 密钥,单击它 4) 然后单击添加SSH 密钥(现在粘贴您生成的 SSH 密钥)【参考方案2】:

我遇到了完全相同的问题,但我从 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生效。

来源:

[1] 解决方案来自这个bug report [2] Ubuntu Community Documentation 用于持久环境变量:

【讨论】:

我整个星期都在处理这个问题 - osx 下的 Eclipse 连接到 GitHub 或 Asssembla。你的修复对我有用。谢谢。 在 Windows 上,openssh 对我不起作用。我不得不使用 plink。看我的回答。 而且它越来越接近发布的修复程序。在错误报告的最后,有人展示了如何手动下载最新的 jsch jar 文件并手动安装它以使其以这种方式工作。我将使用这个 env var 解决方案并等待那个 jsch jar 文件进入实际的 eclipse 版本。 解决了我的问题。谢谢。 天啊。像这样的问题让我想知道为什么 android 首先使用 Eclipse。非常感谢您的提示。这解决了我的问题,EGit/Eclipse 对“Auth Fail”完全没有帮助【参考方案3】:

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

【讨论】:

是的!与我读过的所有其他内容相反,但这有效。 (日食靛蓝) http 或 https 比 ssh 简单得多 可以,但有些情况下需要使用 ssh。例如在使用存储库时需要在 BitBucket 中进行两因素身份验证。只有在需要双重身份验证时才能使用 ssh。【参考方案4】:

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

步骤:

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

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

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

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

干杯。它应该可以完美运行。

【讨论】:

【参考方案5】:

你需要安装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 Home

然后转到Key Management tab加载现有密钥 - 在此处将您的私钥设置为~/.ssh

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

【讨论】:

非常感谢,其实我是在 Arch Linux 下运行的【参考方案6】:

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

ssh-add ~/.ssh/id_rsa 

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

【讨论】:

【参考方案7】:

对于使用 SSH 的 *nix 用户:

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

【讨论】:

知道现在还是这样吗?今天晚上我一直在用头撞墙。我的私钥受到密码短语的保护,Eclipse/eGit 从不要求密码短语。当我尝试推送到远程时,Eclipse 只是吐出一个错误“org.eclipse.jgit.transport.CredentialItem$StringType Passphrase for .ssh id_rsa”【参考方案8】:

在下面的链接中,我发布了对我有用的内容...

http://www.eclipse.org/forums/index.php?t=msg&goto=648905&S=9bcfa96ab726d744d41a19c7fb02d723#msg_648905

【讨论】:

在我的例子中,必须在更改完成后重新启动 Eclipse!【参考方案9】:

我的第四条:我的 SSH 密钥是在 Cygwin 中设置的,位于 C:\cygwin\home\.ssh,所以我将 SSH 指向此文件夹,而不是默认的 (Win7) C:\Users\\ssh,按照这些说明:http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

并使用了 ssh 协议,它工作正常。但是,尝试使用 git 协议仍然会给出“用户不支持 git 协议”。

【讨论】:

【参考方案10】:

对于像我一样已经设置了 ssh-keys 但仍然出现错误的人:

确保您设置了推送遥控器。当我遇到 Cannot get remote repository refs -problems(“... Passphrase for...”和“Push...”对话框中的“Auth fail”)时,它对我有用。

前提是你已经:

    使用 Github 设置 SSH 密钥(窗口 > 首选项 > 常规 > 网络连接 > SSH2)

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

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

...这是你的做法:

转到 Git 存储库视图(窗口 > 显示视图 > 其他 > Git 存储库) 扩展您的存储库并右键单击遥控器 --> “创建遥控器” “远程名称”:来源,“配置推送”:勾选 --> 点击“确定” 点击“更改...”按钮 粘贴你的 git URI 并选择协议 ssh --> 点击“完成” 现在,单击“保存并推送”,现在您应该会收到密码提示 --> 在此处输入公钥密码(前提是您确实(并且您应该)为您的公钥设置密码)--> 点击“确定” 现在您应该会看到一个确认窗口,上面写着“Pushed to YourRepository - origin” --> 点击“OK” Push to upstream,但这次使用“已配置的远程存储库”作为您的目标 Git 存储库 去给自己喝杯当之无愧的咖啡吧!

【讨论】:

【参考方案11】:

我用夜间构建更新了插件:http://www.eclipse.org/egit/download/

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

【讨论】:

它仍然不适合我 :( 自从我发布这个以来它已经升级了两次。可能是 GNU/Linux 下的一个错误【参考方案12】:

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

【讨论】:

【参考方案13】:

在 Windows 上,将 GIT_SSH 设置为 msys git 附带的 openssh 不起作用(Eclipse 在提交期间挂起)。将它设置为 TortoisePlink 解决了这个问题(我猜原来的 plink 也可以)。额外的好处是现在 Eclipse 使用存储在 pageant 中的键。

【讨论】:

【参考方案14】:

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

【讨论】:

【参考方案15】:

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

分支机构 标签 参考文献 遥控器 等等……

单击遥控器,右键单击那里的存储库 url,然后选择“更改凭据”。

【讨论】:

【参考方案16】:

我在Eclipse forums 上找到了一个帖子,为我解决了这个问题。

【讨论】:

【参考方案17】:

我遇到了同样的问题,似乎是配置问题。 github mac osx 应用程序创建了一个名为 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

【讨论】:

【参考方案18】:

如果你有 PEM 文件:在 Eclipse 中转到 Window > Preferences > Network Connections > SSH2,然后将 PEM 文件的路径添加到“Private keys”并这应该可以解决问题。

【讨论】:

【参考方案19】:

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

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

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

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

又好又简单:)

如果我要开始学习该原生应用程序,一切都可以完成,我只需要他的推送功能。

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

【讨论】:

【参考方案20】:

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

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

【讨论】:

【参考方案21】:

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

我做了什么:

1) 转到以下位置加载现有密钥: Window > Preferences > "Search ssh" > Key Management Tab > Load Existing Key > 选择你已经拥有的私钥

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

3) 现在检查 push 和 pull 是否正常工作。应该是的。

4) 现在在常规选项卡中,删除私钥 id_dsa_github 并通过单击按钮添加私钥

添加您以前的私钥

现在你可以走了。我猜,从 EGit 到 注册 的所有事情至少要花一次时间。

【讨论】:

【参考方案22】:

我遇到了同样的问题。

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

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

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

检查您的网址

Git Perspective > Remotes > Origin > Configure Fetch > Change > 确保 prtocal 是 HTTPS 并且 URL 是 https 版本

【讨论】:

【参考方案23】:

我可以使用控制台来推/拉存储库,但在 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

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

【讨论】:

以上是关于EGit 和 GitHub 出现“Auth Failed”错误的主要内容,如果未能解决你的问题,请参考以下文章

Egit - 现在无法结帐 - 卡在变基状态

Eclipse中怎么清除EGit记住的GitHub用户名和密码

解决eclipse中egit中的cannot open git-upload-pack问题

在eclipse上使用github,向github中提交项目

如何让Egit记住密码和用户名?

在Myeclipse中提交代码到GitHub中