【问题标题】:GitLab + Eclipse + SSH - "Auth failed" or "cannot open git-upload-pack"GitLab + Eclipse + SSH - “身份验证失败”或“无法打开 git-upload-pack”
【发布时间】:2014-01-27 17:03:28
【问题描述】:

这周我设置了一个新的 GitLab 服务器。它正在运行。
昨天我强迫他通过 HTTPS 进行安全通信。

在 Eclipse 中,我通过首选项生成了一个 RSA-Key。

但如果我尝试导入 Git 项目 (git@DOMAIN:GROUP/PROJECT.git),那么:

  1. 没有填写密码,我得到了响应:Auth fail: Invalid password or missing SSH key。
  2. 填写了我的密码(但 git 用户名),我得到了响应:

    Auth fail: Invalid password or missing SSH key.
    
  3. 使用我的用户名和密码,我得到了回复:

    Auth fail: Invalid password or missing SSH key.
    

通过 HTTPS 我得到响应:

cannot open git-upload-pack

请问,我没看到什么?

【问题讨论】:

    标签: eclipse git authentication ssh gitlab


    【解决方案1】:

    来自here我的回答:

    我在将我的项目从 github 迁移到 bitbucket 时遇到了同样的问题,这就是我解决它的方法:

    简介:我将在这里描述ssh密钥的使用。用户生成唯一密钥以使用 ssh 连接到远程计算机。所以你可以在本地创建它。之后,用户将密钥上传到想要无需密码且更安全地连接的远程机器。在 Git 上,同样的事情也会发生,用户创建一个 ssh 密钥并将生成的密钥值上传到 git 系统提供商,如 Github 或 Birbucket。上传您的唯一密钥后,您必须配置您的开发环境,让您的 git 系统提供商通过 ssh 密钥进行通信,提供安全性。

    1) 我在 Eclipse 中使用 ssh 密钥通过 github 将我的提交推送到远程,对于 eclipse,ssh 密钥设置为 window -> preferences -> General -> Network Connections -> SSH2(在 git 推送上,如果设置了则使用此 ssh 密钥)。如果您的机器上没有任何 ssh 密钥,那么 follow this article 为您生成一个并在上面的路径中将其设置为 eclipse。

    2) 在您的 github 或 bitbucke 帐户中,找到可以保存 ssh 密钥的屏幕。对于 bitbucket,它位于 https://bitbucket.org/account/user/[user-name]/ssh-keys/。 '[user-name]' 这是您在 bitbucket 的用户名。使用文本编辑器打开您的“id_dsa.pub”文件(您生成 ssh 密钥的位置),全选,复制并粘贴到您的 github/bitbucket 帐户的 ssh 密钥添加部分,然后单击添加。

    3) 在 Eclipse 中,请务必为您的项目使用“ssh”GIT URI。转到Window -> Preferences -> Team -> Git -> Configuration,单击“Repository Settings”选项卡并将您的 GIT ssh URI 粘贴到remote.origin.url

    4) 最后尝试将您的提交推送到远程。你不能面对任何错误,如果你有请在我的回答下评论。

    问候...

    【讨论】:

      【解决方案2】:

      最近,我确实遇到了与 GitLab 类似的问题,但已通过以下方式解决:

      首先,我使用 MAC-OSX CLI 生成 ssh-rsa 并导出到 GitLab。 Git CLI 工作正常,但 Eclipse 没有运气。

      然后,我转到 Eclipse > Preferences... > General > Network Connections > SSH2,Key Management 选项卡,我从 Eclipse 重新生成了密钥,但使用了“Generate RSA key...”按钮。它最后有“RSA-1024”,并导出到 GitLab。

      【讨论】:

      • 我有同样的症状:在命令行中运行良好,但在 Eclipse 中失败,出现“密码不正确或缺少 SSH 密钥”。奇怪的是,当我运行openssl rsa -text -noout -in id_rsa 时,从命令行生成的密钥失败了,消息对于这个框来说太长了。但是,当我使用 Eclipse 生成密钥时,它可以正常工作。即使我明确指定位长和类型,它仍然在命令行失败。
      【解决方案3】:

      httpsssh 是两种不同的通信协议。

      如果你想使用 https url 访问你的 GitLab 存储库,你应该使用 https url:

      https://yourLogin@DOMAIN/group/project.git
      

      如果你使用的是 git@DOMAIN:GROUP/PROJECT.git,它是一个 ssh url。

      现在:如果您在 Eclipse 中正确设置了 SSH id_rsaid_rsa.pub,则 ssh 克隆应该可以工作:请参阅 EGit SSH configuration
      确保:

      • 您的私钥一开始没有密码保护。
      • 您的公钥 (id_rsa.pub) 已发布在您的 GitLab 个人资料中

      【讨论】:

      • 是的,我知道。但是我使用 SSH-URL 或 HTTPS-URL 都没有关系,两者都失败了。我的问题是:为什么?什么可能会通过 SSH 或 HTTPS 破坏结帐?
      • @lippoliv 我已经编辑了解决 ssh 部分的答案。 ssh url 不会涉及您的“用户名和密码”,但始终是公钥和私钥。
      • 谢谢。现在似乎更清楚了:)但是“您的私钥一开始没有密码保护”到底是什么意思。我不应该设置密码吗?
      • @lippoliv 您可以考虑设置密码。我要说的是设置密码首先,以便测试您的ssh设置而不必担心所说的密码。如果可行,那么您可以根据需要将您的公钥/私钥替换为一个受密码保护的密钥。
      • 嘿 VonC,我认为我的配置有问题...我按照你说的做了,结果如下(直接来自 git bash):git clone git@URL.TLD:GROUP/PROJECT。 git 克隆到“项目”中...访问被拒绝。致命:无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在。 git clone myuser@URL.TLD:GROUP/PROJECT.git 克隆到'PROJECT'... myuser@URL.TLD的密码:[正确填写]权限被拒绝,请重试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2020-07-03
      • 2014-05-20
      • 2017-01-03
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多