我需要在我的客户端拥有多个密钥才能访问Repository托管上的两个不同帐户。见https://redefy.repositoryhosting.com/support - >如何在我的客户端上管理多个密钥对的多个帐户?
我不明白如何在Windows上的Git中使用不同的ssh键进行更改,有人可以帮助我吗?
答案 0 :(得分:43)
我假设您使用git bash和openssh。
与文章中的内容类似,您可以为ssh客户端创建一个列出所有帐户的配置文件。您可以在~/.ssh/config
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-one
和account-two
的“主机别名”。如果您使用它们,则在建立连接时,ssh客户端将使用相应的HostName
,User
和IdentityFile
作为服务器地址,用户名和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一样