【发布时间】:2020-09-26 12:56:45
【问题描述】:
我的 Bitbucket 多个帐户有问题。
这是我目前的情况:
MacOS Catalina 10.15.5
我的 ~/.ssh 文件夹有这个:
-rw-------+ 1 myuser mygroup 1679 12 oct 2016 id_rsa -rw-r--r--@ 1 myuser mygroup 411 12 oct 2016 id_rsa.pub -rw-------+ 1 myuser mygroup 1823 25 feb 13:50 mycompany -rw-r--r--@ 1 myuser mygroup 394 25 feb 13:50 mycompany.pub
我有一个 Bitbucket 公司帐户,其 SSH 密钥与 mycompany.pub 相同
我有一个 Bitbucket 个人账户,其 SSH 密钥与 id_rsa.pub 相同
每当我做任何与我的 Bitbucket 个人帐户相关的事情(git clone、push...)时,一切正常。
另一方面,要使用我的 Bitbucket 公司帐户执行操作,我必须将我的用户名添加到命令中,例如:
git clone https://mycompany@bitbucket.org/blablabla
如果我不添加我的用户名,我会收到权限错误。 使用我无法修改的脚本(例如,使用“pod lib lint”和访问我公司的 bitbucket 私有存储库的东西),这是一个大问题。
到目前为止我已经尝试过:
- 检查我的 ssh-agent 是否正在运行:
$ eval `ssh-agent -s` Agent pid 5788
- 检查我的 ssh-agent 显示:
$ ssh-agent sh -c 'ssh-add; ssh-add -l' Identity added: /path/to/my/user/.ssh/id_rsa (/path/to/my/user/.ssh/id_rsa) 2048 SHA256:... /path/to/my/user/.ssh/id_rsa (RSA)
- 因为我看到我的 ssh-agent 不包含我的公司密钥,所以我添加了它:
$ ssh-add ~/.ssh/mycompany Identity added: /path/to/my/user/.ssh/mycompany (mycompany)
- 但如果我再次检查我的 ssh-agent,则未包含密钥:
$ ssh-agent sh -c 'ssh-add; ssh-add -l' Identity added: /path/to/my/user/.ssh/id_rsa (/path/to/my/user/.ssh/id_rsa) 2048 SHA256:... /path/to/my/user/.ssh/id_rsa (RSA)
我也尝试过更改我的 ~/.ssh 配置文件:
Host * UseKeychain yes
到这里:
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa Host mycompanybitbucket Hostname bitbucket.org User mycompany AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/mycompany
重新启动 shell 并再次尝试,结果相同:我无权访问我公司的 bitbucket 存储库。
我错过了什么?
编辑:
我尝试了另一件让事情变得更加混乱的事情。
如果我用 mycompany 和 mycompany.pub 覆盖 id_rsa 和 id_rsa.pub 并运行:
ssh-agent sh -c 'ssh-add; ssh-add -l'
输出是这样的:
Identity added: /path/to/my/user/.ssh/id_rsa (mycompany) 2048 SHA256:... mycompany (RSA)
这让我觉得这次证书是正确的,一切都应该运行良好。但不是,在此之后,所有 git 命令都不断返回权限错误。
【问题讨论】: