github - 通过 ssh 推送;连接关闭。fata:无法从远程存储库中读取
问题描述
我知道那里有很多类似的问题……但我找不到任何可以帮助我解决问题的东西。所以……我们开始吧。
我正在尝试将 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 配置中编辑我的条目以匹配。推送仍然可以正常工作。
在这一点上我真的很困惑,我觉得我错过了一些明显的东西......但我就是无法修复它。
解决方案
首先,测试您的密钥是否被 GitLab 接受:
ssh -Tv gitlab.[mydomain]
这应该以欢迎消息结束。
然后,确保使用正确的 URL
git ls-remote gitlab.[mydomain]:aProject/aRepo
这将迫使 SSH 考虑您的~/.ssh/config
文件。
推荐阅读
- rust - Rust 说 import 没有被使用,同时找不到导入的语句
- ios - Nativescript-firebase-plugin:身份验证在 iOS 上不起作用
- bootstrap-4 - 如何在卡片关闭时使箭头指向下方并在没有 jquery 或 javascript 的情况下在第一次点击时旋转?
- c# - 在asp.net的另一个页面中的会话传递问题?
- arrays - 如何使用 Mongoose 正确更新数组中的元素
- firebase - 是否可以将 Firebase Admin SDK 添加到使用实时数据库和 Firebase 存储的 android 应用程序中
- azure-devops - Azure DevOps YAML 管道手动干预作业与其他作业并行运行
- swiftui - 带有数值的格式化程序错误的Swiftui TextField
- excel - 根据excel中的其他列值为列分配值
- javascript - ramda 阵列清理数据以产生唯一的阵列