1

我们的 git 存储库有一个奇怪的问题。我们引用了两个子模块(不确定是否重要:造成麻烦的一个位于 bitbucket 云上,而 repo 和另一个子模块位于同一个 bitbucket 服务器实例上)

如果有人想重新检出存储库,他们会收到以下错误:

Cloning into local/path…
Warning: Permanently added the RSA host key for IP address 
xx.xxx.xxx.xxx to the list of known hosts.

Permission denied (publickey).
fatal: Could not read from remote repository.

我所期望的不是正确设置 ssh 密钥,但奇怪的是:如果我们通过文件系统手动复制子模块的内容,那么从那一刻起一切正常并且拉动,在子模块中切换分支等工作正常。

这让我假设一些 git 设置在我正在复制的子模块文件夹中,但实际上只有两个 git 文件:gitignore(它不会忽略任何特殊/可疑的东西)和一个 .git 文件,它只包含 gitdir : ../../../.git/modules/path/to/submodule

这应该与权限无关,所以任何人都可以解释为什么手动复制可以解决权限问题?

4

4 回答 4

1

我最终删除了子模块,因为它似乎还有其他奇怪的东西。例如,bitbucket 显示的克隆链接显示“git clone git@bitbucket.org:company/repo-name.git 无法被 sourcetree 正确识别。冒号似乎放错了位置,我们的其他存储库指定了端口,然后到回购的路线只有斜线。所以无论回购有什么问题,它似乎在几个地方都有问题,因此我们完全把它扔掉了

于 2018-12-20T14:36:37.533 回答
0

确保您的子模块使用用户 git (git@bitbucket.org),而不是当前用户。我通过在我的以下文件中添加 bitbucket.org 的配置来解决此问题~/.ssh/config

host bitbucket.org
    user git
于 2021-07-19T09:41:30.993 回答
0

向本地 Bitbucket Server 实例添加密钥将更新该 Bitbucket Server 实例。但是,它不会对 Bitbucket Cloud 做任何事情。

听起来您在这里有两个选择:

  1. 让用户创建 Bitbucket Cloud 帐户,然后将他们的 SSH 密钥与这些帐户相关联。
  2. 对子模块远程使用 HTTPS。
于 2018-12-18T23:58:03.913 回答
0

当我尝试在 mac 上克隆一个子模块时,我遇到了同样的错误

git submodule update --init
Cloning into '**** local repo *****'...
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.

当我将 ssh 密钥设置到本地机器和 bitbucket 帐户时,它就解决了。

参考:https ://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html

于 2019-07-03T09:39:51.433 回答