【问题标题】:EGit - SSH Fails at Passphrase (when connecting to GitHub)EGit - SSH 在密码短语中失败(连接到 GitHub 时)
【发布时间】:2011-09-13 01:07:59
【问题描述】:

我正在使用 Eclipse Indigo RC4 和 EGit(捆绑)。我有一个项目已提交到我的本地存储库,现在我想从它推送到我在 GitHub 中的远程存储库。

从命令行工具推送/拉取工作正常(我已经配置了基于 RSA 密钥的 SSH 身份验证)。

但是当我尝试从 EGit 推送(通过指向 GitHub 的 SSH)时,我会收到输入密码短语的提示。但是当我输入正确的密码短语时,它会再次提示相同(注意:用户名显示为 git,因为这是使用 GitHub 时的默认设置。我想这不会是问题)。

在 Eclipse 首选项下,我已仔细检查以确保它已配置为使用我生成的 RSA 令牌。

【问题讨论】:

    标签: eclipse git github egit


    【解决方案1】:

    点击这个链接http://www.eclipse.org/forums/index.php/t/197428/解决了。

    我创建了一个环境变量GIT_SSH,它指向/usr/bin/ssh(这是我在命令行中使用的SSH 实现)并启动了Eclipse。当此环境变量存在时,Eclipse 使用我的 shell 的 SSH 工具进行连接,并且没有提示输入密码短语,并且工作正常。

    【讨论】:

    • 我在执行此操作时遇到问题,我应该将环境变量放在哪里,我需要的确切行?
    • @Seth 这取决于你的操作系统 Seth。在我的例子中,我使用的是 Ubuntu,所以我修改了/etc/environment(你需要超级用户权限)文件并将GIT_SSH="/usr/bin/ssh" 作为最后一行添加到其中,然后重新启动机器。如果您使用的是 Windows,请查看此链接 support.microsoft.com/kb/310519。在任何情况下,快速谷歌“如何在 Your-OS-Name 中设置环境变量”会让你继续前进。希望这可以帮助。祝你好运!
    • 同样的问题,同样的解决方案!非常感谢!
    • 仅供参考,但不要坚持,您通常不应该编辑 /etc/environment 而应该编辑主目录中的 .profile 。添加行 export GIT_SSH=which ssh 通常适用于大多数平台。
    • 谢谢尼克。嗯你是对的。我习惯于编辑 /etc/environment,因为我所做的更改适用于所有帐户。但话又说回来,我的机器上只有一个帐户,我本可以使用 .profile 代替 :)
    【解决方案2】:

    更简单的方法是从 eclipse orbit 存储库(p2 软件站点)将 JSch 包更新到 0.1.44:http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository/

    根本问题其实是JSch

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=326526

    【讨论】:

    • 为我解决了这个问题(Ubuntu 11.04)。他们为什么不将其反向移植到当前的稳定版本中?令人沮丧。
    • @adietisheim 非常感谢!更新 JSch 包也对我有用!! :)
    • 在 ubuntu 11.04 上为我工作。谢谢!
    【解决方案3】:

    在 Eclipse Juno 上,Jsch 已经 > 1.44,但问题仍然存在(对我而言)。我也尝试设置 GIT_SSH 但这也不起作用。我之前的密钥是由 ssh-keygen 生成的,我只能猜测这不会生成合适的密钥。

    我所做的工作是这样的:

    • 使用 Eclipse 生成新的 DSA 密钥 - 创建 1024 位密钥 Eclipse->首选项->常规->网络连接->SSH2->密钥管理

      [它可能适用于我没有尝试过的 RSA]

    • 将生成的公钥复制到远程仓库

    • 在不输入密码的情况下单击 [保存私钥] 按钮

    • 重启 ECLIPSE

    Eclipse/EGit 现在将与远程 Git 存储库同步,无需密码 - 唷!

    【讨论】: