在为我的多个Bitbucket帐户之一添加SSH密钥时出现问题

时间:2020-06-07 14:56:16

标签: ssh bitbucket

我的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

重新启动外壳程序并重试所有操作,结果相同:我无权访问公司的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命令都不会继续返回权限错误。

1 个答案:

答案 0 :(得分:0)

好吧,我终于明白了。我的问题在于对https://bitbucket.org的所有访问权限,他们需要包括用户名,但在某些地方我无法编辑这些URL。

因此,我正在研究如何向这些URL添加默认用户名,并且该方法有效。 只需运行这两个命令即可解决我的问题:

$ git config --global credential.helper cache
$ git config --global credential.https://bitbucket.org.username mycompany