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

Problem adding SSH key for one of my multiple bitbucket accounts

我的 Bitbucket 多账户有问题。

这是我目前的情况:

-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 个人帐户相关的事情时(git 克隆、推送...)一切正常。

另一方面,要使用我的 Bitbucket 公司帐户进行操作,我必须将我的用户名添加到命令中,例如:

git clone https://mycompany@bitbucket.org/blablabla

如果我不添加我的用户名,我会收到权限错误。 这是使用我无法修改的脚本的一个大问题(例如使用 "pod lib lint" 和访问我公司的 bitbucket 私有存储库的东西)。

到目前为止我尝试过的:

$ eval `ssh-agent -s`
Agent pid 5788
$ 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-add ~/.ssh/mycompany
Identity added: /path/to/my/user/.ssh/mycompany (mycompany)
$ 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 命令不断返回权限错误。

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

所以我正在研究如何向这些 URL 添加默认用户名并且它起作用了。 仅 运行 这 2 个命令解决了我的问题:

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