【问题标题】:Egit Refuses to accept id_rsaEgit 拒绝接受 id_rsa
【发布时间】:2011-11-01 10:38:02
【问题描述】:

我是第一次尝试在 Eclipse 中设置 egit 的 git 用户,因此我可以继续通过 Eclipse 轻松编写代码。问题是,每次我尝试通过 egit 克隆 repo 时,都会出现错误“无法列出可用分支。原因:ssh://git@github.com:22 /Users/elifinkelshteyn/.ssh/id_rsa 的密码。 "这真的很奇怪,因为我可以使用相同的 id_rsa 通过终端进行克隆,而且我已经在 Eclipse ssh 属性中验证了它正在尝试使用正确的密钥。什么给了?

【问题讨论】:

  • 正如 VonC 下面所说的,这是一个当前的错误,但仅在最新的夜间版本中。我能够通过回滚到最新的稳定版本来解决我的问题,此时我被正确提示输入密码。 如果其他人遇到此问题,只需回滚到最新的稳定版
  • 可以被认为是SO问题EGit - SSH Fails at Passphrase (when connecting to GitHub)的重复

标签: eclipse git ssh-keys egit


【解决方案1】:

看起来您的 /Users/elifinkelshteyn/.ssh/id_rsa 文件需要密码,我不确定 Eclipse 中的 ssh 实现是否知道如何提示您输入密码。我的脑后发痒,可能需要为 mac 安装一个 ssh-auth 包,以便它可以提示,如果你能找到更多关于它的信息,它可能是理想的。但是,短期内的解决方法是生成一个不使用密码的新 rsa 密钥,将其上传到 github,然后设置 eclipse 使用它。

【讨论】:

  • 保护您的私钥与您上传到 GitHub 的密钥对中的公钥无关。
【解决方案2】:

确认一下:这是当前的错误 (issue 353561)。
根据您在创建密钥时使用的加密方式 (bug 326526),密码可能仍然是个问题。

但是,应该支持密码短语(如Egit user guide mentions)。

【讨论】:

    【解决方案3】:

    正如 VonC 所说,EGit 使用的 SSH 实现只能处理 3DES 加密的私钥,这是一个错误。 如果你像我一样,你有 AES 加密密钥,所以它只是无法解密它们。 该错误报告中有一条评论,这是直接指向评论https://bugs.eclipse.org/bugs/show_bug.cgi?id=326526#c9的链接

    该评论提供了一个可行的解决方法:最新版本的 EGit 支持 GIT_SSH 环境变量,将其设置为 /usr/bin/ssh 甚至 plink.exe 如果您在 Windows 上应该可以解决问题。

    【讨论】:

    【解决方案4】:

    如果提示您输入密码但 eclipse 不接受密码,请尝试以下操作:

    将 GIT_SSH 环境变量设置为您的 ssh 客户端,例如通过添加

    export GIT_SSH=/usr/bin/ssh
    

    到你的 .bash_rc

    在 Mac OSX 上,打开终端并输入:

    cd
    mkdir .MacOSX
    cd .MacOSX
    echo "" > environment.plist
    open environment.plist
    

    使用 VALUE=/usr/bin/ssh 添加一个 KEY=GIT_SSH 并保存文件。

    重新登录您的帐户后,它应该可以工作了。

    【讨论】:

    • 我在使用 Ubuntu 12.04、Eclipse Helios、OpenSSH_5.9p1 Debian-5ubuntu1 和 eGit 2.1.0.201209190230-r 时遇到了这个问题。 Eclipse 在我的 id_rsa 私钥上提示我输入密码并且不接受我的输入。我按照 [这些说明][helpful_ticket] 并在命令行中运行以下命令并将其添加到我的 ~/.bashrc 中: export GIT_SSH=/usr/bin/ssh 重新启动 Eclipse 后,Gnome 密钥管理器提示我输入密码反而。我的密码被接受了,我能够连接到我的 github 存储库。 [helpful_ticket]:stackoverflow.com/a/7901786/1304537
    【解决方案5】:

    自从 OP 以来已经过去了相当长的时间,我仍然遇到同样的问题。对于那些仍然有这个问题的人,这可能会有所帮助:

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

    前提是你已经:

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

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

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

    ...这是你的做法:

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

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多