在Windows上的Git中切换多个ssh密钥

时间:2012-03-12 18:47:50

标签: windows git ssh repository

我需要在我的客户端拥有多个密钥才能访问Repository托管上的两个不同帐户。见https://redefy.repositoryhosting.com/support - >如何在我的客户端上管理多个密钥对的多个帐户?

我不明白如何在Windows上的Git中使用不同的ssh键进行更改,有人可以帮助我吗?

3 个答案:

答案 0 :(得分:43)

我假设您使用git bash和openssh。

与文章中的内容类似,您可以为ssh客户端创建一个列出所有帐户的配置文件。您可以在~/.ssh/config

中自己的ssh客户端配置文件中编写以下配置
Host account-one
HostName server.example.com
User user-one
IdentityFile ~/.ssh/key-one

Host account-two
HostName server.example.com
User user-two
IdentityFile ~/.ssh/key-two

它说的是你定义了两个名为account-oneaccount-two的“主机别名”。如果您使用它们,则在建立连接时,ssh客户端将使用相应的HostNameUserIdentityFile作为服务器地址,用户名和ssh密钥文件。通过这种方式,您可以使用它们在同一台服务器上访问您的帐户和密钥。

在git中,您可以使用它们定义两个遥控器

$ git remote add one account-one:repository.git
$ git remote add two account-two:repository.git

然后你可以推送到那些遥控器

$ git push one master
$ git push two master

答案 1 :(得分:13)

哪个密钥用于由git用于连接的SSH程序处理的服务器。在默认设置中,这应该是命令行SSH客户端(openSSH?)。

使用openSSH,您可以为~/.ssh/config文件中的特定主机配置特定密钥文件:

Host foo.example.com
  IdentityFile ~/.ssh/foo.example.com-id_rsa

Host bar.example.com
  IdentityFile ~/.ssh/bar.example.com-id_rsa

其中~/.ssh/*.example.com-id_rsa是每个服务器的私钥文件。

我希望这会有所帮助。

答案 2 :(得分:0)

我会间接回答这个问题。我以前使用过git bash,我发现当我通过git bash shell使用git时,它的行为就像一个mac或linux bash shell。这意味着,当使用git bash时,我可以回答你的问题:

'如果您使用git bash,您可以使用ssh-agent / ssh-add和friends'

管理多个帐户,就像使用linux或mac一样