谷歌云源存储库:权限被拒绝(公钥)



我在一个项目中设置了一个源存储库。我有我的主要管理员用户,我创建了第二个用户(一开始确实尝试了一个服务帐户(,并给该用户";项目所有者";使用源repo访问项目。

我通过运行ssh-keygen -t rsa -P "" -C "user@domain.com" -f "mysshfile"在本地机器上创建了SSH密钥

我在.ssh文件夹中创建了一个配置文件:

Host source.developers.google.com
HostName source.developers.google.com
Port 2022
IdentityFile /Users/XXXXX/.ssh/mysshfile

我复制了myshfile.pub的内容,并用Cloud repo SSH密钥注册了它。

当gitclone作为我的第二个用户时,它失败了,并显示错误消息:权限被拒绝(公钥(。当我将克隆作为我的主要管理用户时,它就工作了。

所以我用verbose运行ssh命令来检查:ssh -p 2022 -l admin@domain.com -v source.developers.google.com,我得到:

debug1: Offering public key: /Users/xxxxxx/.ssh/mysshfile RSA SHA256:U+XREDACTED explicit
debug1: Server accepts key: /Users/xxxxxx/.ssh/mysshfile RSA SHA256:U+XREDACTED explicit
debug1: Authentication succeeded (publickey).
Authenticated to source.developers.google.com ([74.125.197.82]:2022).

当我运行与测试用户ssh -p 2022 -l test@domain.com -v source.developers.google.com相同的命令时,我得到:

debug1: Offering public key: /Users/xxxxxxx/.ssh/mysshfile RSA SHA256:U+XJREDACTED explicit
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
test@domain@source.developers.google.com: Permission denied (publickey).

我不明白为什么使用ssh的git克隆适用于一个用户(我甚至不想要的用户(,而不适用于另一个用户?

您需要在配置文件中添加以下行:

PubkeyAcceptedKeyTypes +ssh-rsa

所以现在应该是:

Host source.developers.google.com
HostName source.developers.google.com
Port 2022
IdentityFile /Users/XXXXX/.ssh/mysshfile
PubkeyAcceptedKeyTypes +ssh-rsa

在详细模式下,您将看到以下行:

debug1: send_pubkey_test: no mutual signature algorithm

这意味着ssh-rsa算法被禁用。可以按照此处的说明重新启用。

相关内容

  • 没有找到相关文章

最新更新