在同一个Git主机上为不同的帐户使用不同的SSH密钥

Sub*_*ian 5 git ssh bitbucket

如果我把它作为一个用例,这个问题很简单.我的计算机上有两个SSH密钥

  1. personal_id_rsa
  2. company_id_rsa

我在bitbucket.org上有两个不同的用户帐户.其中一个是我的个人帐户,另一个是我的公司帐户.我的电脑上也有N个存储库.其中一些必须与我的个人帐户和一些其他回购与公司帐户链接.没有必须链接到这两个帐户的存储库.我已经设置了Identityfile里面~/.ssh/config的东西像下面.

Host *.bitbucket.org
   IdentityFile ~/.ssh/company_id_rsa
Run Code Online (Sandbox Code Playgroud)

每当我想将某些内容推送到我的个人存储库时,我将配置文件更改为如下所示.

Host *.bitbucket.org
   IdentityFile ~/.ssh/personal_id_rsa
Run Code Online (Sandbox Code Playgroud)

现在,每当我想制作一个文件时,编辑文件就变得非常不方便了git push.我只是想我是否可以随时拿起其中一把钥匙,当我推动时,它会更容易.有没有办法这样做?

我遇到了这个解释类似用例的问题,但这不是这里的确切用例.

Adr*_*upa 9

您可以在ssh配置文件中添加两个Bitbucket"帐户".Bitbucket有另外的ssh主机侦听端口443(对于那些几乎阻止所有端口的人(原文如此!)).

Host bitbucketCompany
    User git
    HostName altssh.bitbucket.org
    Port 443
    IdentityFile ~/.ssh/company_id_rsa

Host bitbucketWork
    User git
    HostName bitbucket.org
    Port 22
    IdentityFile ~/.ssh/personal_id_rsa
Run Code Online (Sandbox Code Playgroud)

然后在.git/config中更新你的遥控器

公司项目

[remote "origin"]
    url = ssh://bitbucketCompany/username/repo.git
Run Code Online (Sandbox Code Playgroud)

个人项目

[remote "origin"]
    url = ssh://bitbucketPersonal/username/repo.git
Run Code Online (Sandbox Code Playgroud)