我在项目中有一个源存储库设置。我有我的主要管理员用户,我创建了第二个用户(最初尝试了一个服务帐户),并为该用户提供了对具有源代码库的项目的“项目所有者”访问权限。
我通过运行在本地机器上创建了一个 SSH 密钥:ssh-keygen -t rsa -P "" -C "user@domain.com" -f "mysshfile"
我在 .ssh 文件夹中创建了一个配置文件:
Host source.developers.google.com
HostName source.developers.google.com
Port 2022
IdentityFile /Users/XXXXX/.ssh/mysshfile
我复制了 mysshfile.pub 的内容并将其注册到 Cloud repo SSH 密钥。
当 git clone 作为我的第二个用户时,它失败并显示错误消息:Permission denied (publickey)。当我 git clone 作为我的主要管理员用户时,它可以工作。
所以我运行 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 clone 适用于一个用户(我什至不想要的那个)而不是另一个?