【问题标题】:Problem adding SSH key for one of my multiple bitbucket accounts为我的多个 bitbucket 帐户之一添加 SSH 密钥时出现问题
【发布时间】: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 命令都不断返回权限错误。

【问题讨论】:

    标签: ssh bitbucket


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 2018-02-21
      • 2015-08-21
      • 2014-09-11
      • 2018-05-25
      • 2018-08-13
      • 2016-11-11
      • 1970-01-01
      • 2017-07-02
      相关资源
      最近更新 更多