如何从两台机器访问一个Git仓库?

时间:2016-07-02 13:04:03

标签: git ssh

我有工作回购,通常可以从我的工作机器上访问。在那台机器上,我在Git Bash中使用ssh-keygen创建了一个SSH密钥对。两台计算机上的密钥对为id_rsaid_rsa.pub

如果我以我的工作用户身份登录,并尝试将我的主键添加到工作用户帐户,我会被告知其他人已经注册了该密钥。如果我生成第二个主页密钥,即id_rsa2id_rsa.pub2,则会导致身份验证失败。

据此,我推测Git默认只在查找repo主机时才查找并使用原始的id_rsa.pub文件,顺便提一下,它是BitBucket。我猜我不得不告诉Git哪个关键用于哪个回购,或者其他什么,但是现在我迷路了并且问怎么做。

1 个答案:

答案 0 :(得分:1)

您可以使用~/.ssh/config文件使用多个私有ssh密钥。

Host fromhome
  HostName yourServer
  User git
  IdentityFile "~/.ssh/id_rsa2"

Host fromwork
  HostName yourServer 
  User git
  IdentityFile "~/.ssh/id_rsa"

该文件可以引用两个私钥,并允许您使用2个不同的ssh URL。

从家里出发:

cd /path/to/local/repo
git remote set-url origin fromhome:<user>/yourrepo

从工作:

cd /path/to/local/repo
git remote set-url origin fromwork:<user>/yourrepo

话虽如此,从家里或工作中,你只需要一套公钥/私钥,所以你不需要配置文件。
如果您在家中重新生成私有id_rsa私钥,您将能够在BitBucket端注册其新公钥。
在家中,.ssh/config仅在您已经使用私有/公共ssh密钥时才有用。

Rahul Gupta问道:

  

为什么我不能将.ssh目录复制到第二台机器并使用它?

这被认为是不好的做法:私钥应该保留... 私人,如“未复制”。
此外,您可以轻松撤销私钥(通过从.authorized_keys ssh服务器中删除其授权密钥)。如果在许多计算机上使用了私钥,则可以通过删除服务器端的一个公钥来撤销访问权限。