【问题标题】:Git pull over SSH - Repository not found. HTTPS worksGit 拉过 SSH - 找不到存储库。 HTTPS 有效
【发布时间】:2017-07-21 17:21:29
【问题描述】:

Git pull over ssh 不适用于我组织的其中一个私有存储库。

➜  player2-js git:(master) git remote set-url origin git@github.com:MyOrganization/player2-js
➜  player2-js git:(master) GIT_TRACE=1 git pull
11:24:39.494710 git.c:371               trace: built-in: git 'pull'
11:24:39.495491 run-command.c:350       trace: run_command: 'fetch' '--update-head-ok'
11:24:39.495882 exec_cmd.c:116          trace: exec: 'git' 'fetch' '--update-head-ok'
11:24:39.498051 git.c:371               trace: built-in: git 'fetch' '--update-head-ok'
11:24:39.499378 run-command.c:350       trace: run_command: 'ssh' 'git@github.com' 'git-upload-pack '\''MyOrganization/player2-js'\'''
ERROR: Repository not found.
fatal: Could not read from remote repository.

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

Url 是正确的,我是从 github 上复制的并仔细检查了它。而且,当然我的 SSH 访问是正确的,我也检查了它:

➜  player2-js git:(master) ssh -T git@github.com                                                     
Hi MyOrganization/academy-ui! You've successfully authenticated, but GitHub does not provide shell access.

对于我拥有相同访问权限的其他组织的存储库,我也没有任何问题。我的同事也没有相同的回购错误。 同时我可以正常加载它:

➜  player2-js git:(master) git remote set-url origin https://besuhoff@github.com/MyOrganization/player2-js
➜  player2-js git:(master) git pull
Password for 'https://besuhoff@github.com': 
Already up-to-date.

我查看了 Stack,但只发现了公钥有问题或缺少 repo 权限的情况,这两种情况都不是我的情况。

会是什么?

UPD。感谢@Jakuje,我发现我使用了不正确的密钥。对于在同样非常具体和奇怪的情况下运行的任何人,我发布了重现步骤:

  1. 初始状态,一切都通过 ssh 运行
  2. 我通过 ssh-keygen 创建了一个新的密钥文件,将其放入我的 .ssh 文件夹中
  3. 我授权新创建的密钥访问我的一个存储库
  4. 我的控制台 git 客户端在通过 ssh 向 git@github.com 授权时开始使用这个新密钥(怎么会?ssh-keygen 添加到 ssh-agent 什么的???)

【问题讨论】:

  • 嗯,听起来很奇怪。如果这里没有人可以提供帮助,请写信给 GitHub 支持并询问,他们通常会很快回复。
  • 您在哪里设置了ssh 密钥?第一个成功表明您正在使用名为MyOrganization/academy-ui 的密钥,但第二个成功是使用besuhoff 用户。那肯定是另一回事。
  • @Jakuje 愚蠢!谢谢先生的提示!那是ssh-keygen,我会更新帖子
  • 尝试:ssh -v git@github.com 看看你发送的愿望密钥。

标签: git github ssh


【解决方案1】:

也许我错了,但您的网址不包含协议。所以应该使用默认协议,即 git://,而不是 ssh://。

但正如我所说,我不确定。不过值得一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 2012-08-11
    • 2015-06-15
    • 1970-01-01
    • 2016-10-15
    相关资源
    最近更新 更多