为我的多个 bitbucket 帐户之一添加 SSH 密钥时出现问题
Problem adding SSH key for one of my multiple bitbucket accounts
我的 Bitbucket 多账户有问题。
这是我目前的情况:
MacOS 卡特琳娜 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 Key 与 id_rsa.pub
每当我做任何与我的 Bitbucket 个人帐户相关的事情时(git 克隆、推送...)一切正常。
另一方面,要使用我的 Bitbucket 公司帐户进行操作,我必须将我的用户名添加到命令中,例如:
git clone https://mycompany@bitbucket.org/blablabla
如果我不添加我的用户名,我会收到权限错误。
这是使用我无法修改的脚本的一个大问题(例如使用 "pod lib lint" 和访问我公司的 bitbucket 私有存储库的东西)。
到目前为止我尝试过的:
- 正在检查我的 ssh-agent 是否 运行ning:
$ 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 命令不断返回权限错误。
好吧,我终于想通了。我的问题是对 https://bitbucket.org 的所有访问,他们需要包含用户名,但在某些地方我无法编辑这些 URL。
所以我正在研究如何向这些 URL 添加默认用户名并且它起作用了。
仅 运行 这 2 个命令解决了我的问题:
$ git config --global credential.helper cache
$ git config --global credential.https://bitbucket.org.username mycompany
我的 Bitbucket 多账户有问题。
这是我目前的情况:
MacOS 卡特琳娜 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 Key 与 id_rsa.pub
每当我做任何与我的 Bitbucket 个人帐户相关的事情时(git 克隆、推送...)一切正常。
另一方面,要使用我的 Bitbucket 公司帐户进行操作,我必须将我的用户名添加到命令中,例如:
git clone https://mycompany@bitbucket.org/blablabla
如果我不添加我的用户名,我会收到权限错误。 这是使用我无法修改的脚本的一个大问题(例如使用 "pod lib lint" 和访问我公司的 bitbucket 私有存储库的东西)。
到目前为止我尝试过的:
- 正在检查我的 ssh-agent 是否 运行ning:
$ 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 命令不断返回权限错误。
好吧,我终于想通了。我的问题是对 https://bitbucket.org 的所有访问,他们需要包含用户名,但在某些地方我无法编辑这些 URL。
所以我正在研究如何向这些 URL 添加默认用户名并且它起作用了。 仅 运行 这 2 个命令解决了我的问题:
$ git config --global credential.helper cache $ git config --global credential.https://bitbucket.org.username mycompany