【问题标题】:git ls-remote fails when logged out注销时 git ls-remote 失败
【发布时间】:2015-09-29 14:35:13
【问题描述】:

我在使用“git ls-remote 命令”时遇到了一个奇怪的问题。 注销时收到以下错误消息:

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

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

当我尝试使用 buildbot 时出现,我不知道如何解决它。

我设法用一个简单的脚本 loop.sh 模拟了这个问题:

for i in {1..100}
do
   echo "$i ls-remote"
   git ls-remote git+ssh://git@sourcesup.renater.fr:2222/simol.git
   echo
   sleep 4
done

我使用屏幕运行这个脚本。 当我登录时它可以工作:

1 ls-远程 3d461dd036960bb69a90a4259789bed5dc2741f7 头 3d461dd036960bb69a90a4259789bed5dc2741f7 refs/heads/master

2 ls-远程 3d461dd036960bb69a90a4259789bed5dc2741f7 头 3d461dd036960bb69a90a4259789bed5dc2741f7 refs/heads/master

3 ls-远程 3d461dd036960bb69a90a4259789bed5dc2741f7 头 3d461dd036960bb69a90a4259789bed5dc2741f7 refs/heads/master

然后,我退出...等待几秒钟,然后再次登录。 git ls-remote 命令失败。 在本例中,我在第 13 次迭代后退出:

13 ls-远程 3d461dd036960bb69a90a4259789bed5dc2741f7 头 3d461dd036960bb69a90a4259789bed5dc2741f7 refs/heads/master

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

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

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

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

你知道如何解决这个问题吗?

非常感谢!

【问题讨论】:

  • 您的私钥密码是否受保护?可能,当您注销时,您的钥匙串被锁定并拒绝访问私钥。

标签: git ssh buildbot


【解决方案1】:

听起来您不是使用 launchd 启动 buildbot 实例,而是使用终端/ssh 连接。有一个有用的page“未通过 launchd 启动的 buildbot 进程可能无法正常工作。更糟糕的是,其中一些权限将可用于在 ssh 会话中启动的进程,但一旦您注销该进程就会消失SSH 会话。”

【讨论】:

    【解决方案2】:

    非常感谢您的帮助。

    我终于找到了解决问题的方法。 当我使用 ssh 连接时,我必须将 ForwardAgent 设置为“否”:

    ssh -o ForwardAgent=no my_buildbot_slave_machine
    

    确实,在我的 ssh 配置中,ForwardAgent 默认设置为“yes”。意思是我连接从机时使用的是自己机器的ssh密钥,而不是从机的ssh密钥。当我断开连接时,我自己的 ssh 密钥不再可用并出现问题。

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2022-01-22
      • 2013-09-23
      • 2011-09-27
      相关资源
      最近更新 更多