如果我把这个问题作为一个用例来问,这个问题会很简单。
1.个人ID_RSA
1.公司_ID_RSA
我在bitbucket.org上有两个不同的用户帐户,一个是我的个人帐户,一个是我的公司帐户。我的PC上也有N个仓库。其中一些仓库必须与我的个人帐户关联,* 一些其他 * 仓库必须与公司帐户关联。没有仓库必须与两个帐户关联。我设置了Identityfile在~/.ssh/config
里面到类似下面的东西。
Host *.bitbucket.org
IdentityFile ~/.ssh/company_id_rsa
字符串
每当我想把一些东西推到我的个人仓库,我改变配置文件如下。
Host *.bitbucket.org
IdentityFile ~/.ssh/personal_id_rsa
型
现在,每当我想制作一个git push
时,编辑文件就变得非常不方便。我只是在想,如果我能在飞行中拿起一个键,当我按下时,它会容易得多。有什么方法可以做到吗?
我遇到了this问题,它解释了一个类似的用例,但这不是这里的确切用例。
4条答案
按热度按时间kulphzqa1#
您可以在ssh配置文件中添加两个Bitbucket“帐户”。Bitbucket有替代的ssh主机监听端口443(对于那些几乎封锁了所有端口的人(原文如此!))。
字符串
然后在.git/config中更新你的远程设备
公司项目
型
个人项目
型
ccgok5k52#
有两种方法。
GIT_SSH
来知道要使用哪个SSH客户端。如果没有设置,它会恢复到它的内置默认值(根据平台,IIRC,它只是ssh
或ssh.exe
),所以你可以这样做:字符串
现在你就能做到了
型
或只是
型
在开始一个你做私人工作的会议之前;"公司设置"将像这样设置,并进行明显的调整。
注意你不能只使用
GIT_SSH='/usr/bin/ssh -i /path/to/a/key/file'
,因为Git希望这个变量只包含一个路径名。我现在懒得去谷歌搜索相关的comp.lang.version-control.git
文章--如果需要的话,请自己去做。jjjwad0x3#
解决方案
我保留另一个答案为接受,因为这将我指向了correct solution, here。我从我的机器中删除了所有现有的密钥,并创建了两个全新的密钥,即
personalid
和companyid
。字符串
之后,将两者都添加到bitbucket上的相应帐户。然后我创建了以下SSH
config
文件,一切都很顺利。由于 * 我没有任何必须同时推送到公司和个人帐户的存储库 *,这个解决方案不需要额外的黑客来使其工作。型
当推送时,像你做的那样正常地做,
git push <your stuff>
,它会选择上传到bitbucket上的合适的密钥。dbf7pr2w4#
如果主机的名称相同,则git config文件应该如下所示:
字符串
只需更改您的电子邮件和主机。此外,我有2个ssh密钥对创建2种不同的算法,但你不必。