【问题标题】:Gitlab key format issueGitlab密钥格式问题
【发布时间】:2020-09-17 04:53:06
【问题描述】:

我正面临一个奇怪的情况,我使用 gitlab 帐户来处理我的代码。我正在使用 ssh 协议来访问 repo。我能够提取代码,但在尝试推送代码时收到以下错误。这对我来说可能很愚蠢。但是我将密钥存储在我的 gitlab 配置文件中,并且能够使用它来提取代码

错误:

$ git push origin master
key_load_public: invalid format
Enter passphrase for key '/c/Users/username/.ssh/id_rsa':
Access denied.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

【问题讨论】:

  • 您在创建 ssh 密钥时使用的密码,您需要输入该密码并确保您已在 gitlab 帐户中添加了该 ssh 密钥。即使它不起作用。创建一个新的 ssh 密钥并将其添加到 gitlab 中。
  • @PriyanshuShekhar,我也尝试过这个选项。仍然不允许我推送代码。同一个 ssh 密钥怎么可以让我拉代码而不是推送它?
  • 您是否在同一个系统中的多个 git 帐户中使用过您的 ssh 密钥?
  • 您确定导出了正确的文件吗?此密钥是如何生成的?
  • 好的,所以可能还有两个问题:密钥缓存的一些问题 - 添加新密钥和第二个密钥格式后应该清理它:gitlab.com/gitlab-org/gitlab-ce/issues/786

标签: git ssh gitlab atlassian-sourcetree


【解决方案1】:

我终于能够解决此问题,并将其发布给其他用户。如果 putty 生成的密钥不能帮助您访问 gitlab 存储库,请尝试使用命令 ssh-keygengitbash 终端生成密钥并将文件保存在 @987654322 @您的用户帐户的文件夹。

linux 风格的密钥生成让我的生活变得轻松,因为我试图在 windows 环境中使用 putty keygen 生成密钥。

希望这对某人有所帮助。

【讨论】:

  • 这适用于我的情况,我使用了 putty-keygen 并不断收到 key_load_public: invalid format 错误。通过使用 Cygwin 的 ssh-keygen 工具生成密钥来解决它。
  • 也为 bitbucket 工作过。
  • 我被 gitlab 引导到 PuTTYGen,但这是对我有用的解决方案。应该使用此解决方案更新 gitlab 帮助,尤其是。因为它不需要额外下载。
  • 我在 gitlab 上也是如此。尝试从 Puttygen 将密钥导出到 OpenSSH,但仍然无效。使用 ssh-keygen 有帮助。
【解决方案2】:

PuTTYGen 可以生成正确的 OpenSSH 密钥。

  1. 生成您的密钥文件,保存私钥(带或不带密码)
  2. 添加您的用户名/电子邮件地址作为评论
  3. 复制生成的密钥的内容并将其粘贴到您的 id_rsa.pub 中
  4. 使用菜单导出 OpenSSH 私钥并保存为 id_rsa

【讨论】:

  • 您将什么文件加载到 Putty 代理 PAGEANT.exe 中?
  • @Leonel 这不是腻子代理抱歉
【解决方案3】:

我通过从我的私钥 (id_es) 重新生成我的公钥 (id_es.pub) 修复了我的错误:

ssh-keygen -f ~/.ssh/id_es -y > ~/.ssh/id_es.pub

【讨论】:

    【解决方案4】:
    ---- BEGIN SSH2 PUBLIC KEY ----
    Comment: "my.email@example.com"
    AAAAB3NzaC1ycxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxx=
    ---- END SSH2 PUBLIC KEY ----
    

    目前,您必须手动提取密钥(删除其他行)并在其前面添加“ssh-rsa”。所以就像

    ssh-rsa AAAAB3NzaC1ycxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxx=
    

    如果 Gitlab 能自动完成会更方便。

    https://gitlab.com/gitlab-org/gitlab-foss/-/issues/786

    【讨论】:

      【解决方案5】:

      如果你上传'vanilla' putty key,解决方案可能在这里描述:https://gitlab.com/gitlab-org/gitlab-ce/issues/786

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-28
        • 1970-01-01
        • 2014-11-20
        • 2020-03-01
        • 1970-01-01
        • 2020-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多