【问题标题】:Can't authenticate to a github repo which I own无法对我拥有的 github 存储库进行身份验证
【发布时间】:2017-02-07 22:22:17
【问题描述】:

我有一个名为 ui-animate 的开源项目,我今天想更新它,我从控制台收到了消息:

权限被拒绝(公钥)。
致命:无法从远程存储库读取。

出于各种原因,这很奇怪:

  1. 我已经设置了这台计算机的 SSH 密钥来验证我的身份
  2. 我可以针对具有相同权限的其他存储库进行身份验证
  3. 我什至无法执行git pull(又名读取操作)
  4. 过去,我在这台计算机上处​​理过这个特定的 repo,在这个特定的目录中,没有问题。
  5. 我什至进入了存储库,创建了一个组,将自己添加到其中,并授予它权限(即使我已经拥有个人访问权限)。
  6. 我在~/.ssh 目录中检查了我的 SSH 密钥,它们就在那里,并且多年来没有改变。

有人知道我做错了什么吗?


我还检查了 SSH 连接(虽然很明显这不是问题,因为我可以很好地连接到其他 github 存储库),无论如何只是为了完整性:

OpenSSH_7.2p2,LibreSSL 2.4.1

嗨,XXXX!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。

debug1:通道 0:空闲:客户端会话,nchannels 1

debug1: fd 2 清除 O_NONBLOCK

已传输:发送 2672,接收 1776 字节,在 0.2 秒内

每秒字节数:发送 13639.3,接收 9065.6

debug1:退出状态 1

【问题讨论】:

  • 不理想,但你可以尝试切换到 HTTPS 吗?
  • @ScottWeldon 是的,我可能不得不这样做,但这太奇怪了,它只发生在这个 repo 上(而且它曾经在一个月前在这台计算机上发生过)
  • 不是我的任何知识领域,但stackoverflow.com/questions/2643502 怎么样,也许用“最旧”链接对答案进行排序,最新的到底部
  • @Drew 我确实看过这个问题并尝试了大多数东西,但没有看到转发选项;现在会试一试,但因为它被隔离到一个单一的回购协议中,我不会认为这会产生任何魔力......不,没有用。无赖。

标签: git github ssh


【解决方案1】:

好的,我找到了问题的答案。这与几个月前 GitHub 在围绕组织和组引入更多功能时所做的更改有关。引入该功能后,您可以轻松地将现有存储库移动到组织中,并且在有问题的存储库的情况下,我利用了这一点。当然,这样做也会更改 origin URL,因此我需要返回到更改前签出的 git 存储库,并将其更新为指向我创建的组。

为了进一步说明这一点,我的 repo 原始 URL 的前后:

之前

 ssh://ksnyde@github.com/lifegadget/ui-animate.git

之后

 ssh://git@github.com:lifegadget/ui-animate.git

其中“lifegadget”是我的组织名称,而我的 userId 是“ksnyde”。希望这可以帮助其他人解决他们未来的问题。也非常感谢以上所有评论并帮助我继续推进的人。 @petter 你的帖子不是直接的解决方案,但是有一些关于原始 URL 的文字突然让我意识到发生了什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 2021-12-13
    • 2018-12-22
    • 2014-01-05
    • 2021-12-17
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多