【问题标题】:git push via ssh; Connection closed. fata: Could not read from remote repository通过 ssh 推送;连接关闭。 fata:无法从远程存储库中读取
【发布时间】:2020-05-13 13:43:18
【问题描述】:

我知道有很多类似的问题......但我找不到任何东西可以帮助我解决我的问题。所以……我们开始吧。

我正在尝试将 repo 推送到自托管 GitLab 实例。我不得不重新生成我的 SSH 密钥,由于某种原因,这破坏了一切,我只是不知道为什么。每当我尝试推送时,都会出现以下错误:

Connection closed by [HOST] port 22
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我已将新公钥添加到 GitLab,并且我已重新配置我的 SSH 配置以也使用新密钥:

Host gitlab.[mydomain]
  User              git
  Hostname          gitlab.[mydomain]
  IdentityFile      ~/.ssh/private/[keyfile]
  IdentitiesOnly    yes

我已经两次和三次检查了所有内容。我是回购的所有者,回购仍然存在于 GitLab 实例上,我的 .git/config 中的 url 是正确的,我已经向 GitLab 添加了正确的公钥,并且我的 ssh 配置中的域和文件名是正确的好吧……但由于某种原因它不起作用。

出于测试目的,我在 GitHub 上创建了一个 Repo,并将其添加为另一个远程。我可以毫无问题地推送到 GitHub。我什至尝试将用于 GitLab 的相同 SSH 密钥添加到 GitHub,并在 SSH 配置中编辑我的条目以匹配。推送仍然可以正常工作。

此时我真的很困惑,我觉得我遗漏了一些明显的东西……但我就是无法修复它。

【问题讨论】:

    标签: github ssh gitlab


    【解决方案1】:

    首先,测试你的密钥是否被 GitLab 接受:

    ssh -Tv gitlab.[mydomain]
    

    应该以Welcome message 结尾。

    然后,确保使用正确的 URL

    git ls-remote gitlab.[mydomain]:aProject/aRepo
    

    这将迫使 SSH 考虑您的 ~/.ssh/config 文件。

    【讨论】:

    • 您好,谢谢您的回答。不幸的是,GitLab 根本不接受密钥……我做了更多的挖掘工作,显然 GitLab 接受新的 SSH 密钥存在错误:gitlab.com/gitlab-org/gitlab/-/issues/212178 我想这就是问题的根源。难怪如果问题发生在 GitLab 的某个地方,似乎什么都不起作用。 ,_,
    • @AndreasGrafen 您是否尝试过使用经典的 PEM 密钥格式? (stackoverflow.com/a/53645530/6309)
    • 我做了,但它似乎没有改变任何东西。您可以在此处查看连接尝试的输出:(pastebin.com/q9CAHQBm)。也许这可以帮助?当我将此与工作连接进行比较时,它似乎只是随机关闭连接......
    • @AndreasGrafen 此时,我将在服务器端以调试模式启动 SSH 守护进程并检查其日志。 (stackoverflow.com/a/41844152/6309)
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2014-09-01
    相关资源
    最近更新 更多