【问题标题】:Failing to push origin to GitLab无法将源推送到 GitLab
【发布时间】:2022-01-29 07:04:26
【问题描述】:

很难学习如何将我的 Git 存储库推送到 gitlab。 目前收到此错误:

ssh:连接到主机 gitlab.stud.idi.ntnu.no 端口 22:连接超时 致命:无法从远程存储库读取。

请确保您拥有正确的访问权限 并且存储库存在。

我(我想我)已经在 gitlab 网站上连接了我的 SSH。但是我在这方面也确实有一些问题,因此我不确定我是否做对了一切。最值得注意的是,当被要求输入密码时,我的 cmd 除了输入之外不会接受任何输入,所以我想我没有一个(或者一个是生成的 idk。)编辑:设法更改我的私人 SSH 密钥密码。当试图改变公共的时候,它给出了错误的权限错误。

我的 .ssh 文件夹中有两个文件:“id_ed25519”和“id_ed25519.pub”。在 GitLab 上,我的 ssh 密钥已注册。但我不明白是什么阻止我将我的 git 测试代表推送到 GitLab...

【问题讨论】:

  • 你能克隆 repo 吗?您使用的是什么操作系统,您的 ssh 密钥在哪个目录中(默认 git 查看通常是 Windows 上的 /username/.ssh)
  • @goku 无法克隆。错误:“远程:HTTP 基本:访问被拒绝远程:您必须使用具有 'read_repository' 或 'write_repository' 范围的个人访问令牌用于通过 HTTP 的 Git。远程:您可以在 gitlab.stud.idi.ntnu.no/-/profile/personal_access_tokens 处生成一个 致命:'@ 的身份验证失败987654322@'"。使用 Windows。我的密钥在 /username/.ssh
  • @goku 我也尝试使用 SSH 而不是 HTTPS 进行克隆,并收到此错误:“正在克隆到 'junit-test'... ssh: 连接到主机 gitlab.stud.idi.ntnu .no port 22: Connection timed out fatal: 无法从远程存储库读取。请确保您具有正确的访问权限并且存储库存在。”
  • 您是否在本地客户端上添加了 SSH 代理?这个应用程序通常负责将您的密钥提供给使用它们的各种 api,至少在 Linux 上是这样。

标签: git ssh gitlab ssh-keys git-push


【解决方案1】:

当被要求输入密码时,我的 cmd 除了 enter 不会接受任何输入

这可能是您的终端没有显示您输入了哪些或多少个字符。


关于 SSH 超时:GitLab's connection Verification 为您的 GitLab 服务器输出什么(可能是 ssh -Tvvv git@gitlab.stud.idi.ntnu.no)?

在该页面上方,还有关于如何设置~/.ssh/config 文件的建议。如果您的 GitLab 管理员配置了不同的 SSH,请向他们询问详细信息,或查看他们的文档以获取建议。

【讨论】:

  • 得到这个错误:“debug3: 无法打开文件:C:/Users/eriks/.ssh/config 错误:2 debug3: 无法打开文件:C:/ProgramData/ssh/ssh_config 错误:2调试2:解析“gitlab.stud.idi.ntnu.no”端口22调试2:ssh_connect_direct调试1:连接到gitlab.stud.idi.ntnu.no [129.241.162.52]端口22。调试3:finish_connect - 错误:异步io完成错误:10060,io:000001C294182D20 debug1:连接到地址 129.241.162.52 端口 22:连接超时 ssh:连接到主机 gitlab.stud.idi.ntnu.no 端口 22:连接超时”记录在案 - 我愿意\.ssh 中没有配置文件
  • 当我从我的机器上尝试-Tvvv 时,我得到只有超时,而不是async io completed with errorThis other post 已通过管理员干预解决。由于您遇到了超时,我还认为您的本地管理员最了解如何解决此问题。
  • 我将尝试与管理员打开对话,谢谢。旁注:我的 /.ssh 中应该有一个配置文件吗?
  • @ErikSkjellevik 不一定,考虑到您的 SSH 密钥对使用了默认名称。但是,如果 SSH 出口被阻止(在公司环境中经常出现这种情况,如 I mentioned before),您将不得不使用 HTTPS URL。
  • 我明白了,有点。如果这就是您所指的,我已经尝试使用此 HTTPS url“gitlab.stud.idi.ntnu.no/eriskjel/junit-test.git”进行克隆和推送。这也不起作用,但是我得到了一个不同的错误:“克隆到 'junit-test'... 远程:HTTP 基本:访问被拒绝远程:您必须使用具有 'read_repository' 或 'write_repository' 范围的个人访问令牌基于 HTTP 的 Git。远程:您可以在 gitlab.stud.idi.ntnu.no/-/profile/personal_access_tokens 处生成一个致命:'gitlab.stud.idi.ntnu.no/eriskjel/junit-test.git' 的身份验证失败"
【解决方案2】:

我让它工作了,最终,问题在于我的大学最近开始使用 2FA,这意味着我无法使用 HTTPS 连接到 GitLab。因此我必须使用我已经设置好的 SSH,但最重要的是我必须在学校网络上,无论是物理上还是使用 VPN。幸运的是,我有 VPN,并设法将我的测试项目推送到我在 GitLab 上的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多