这个问题在这里已有答案:
GitHub用户,
我是github上的新手,并且在git setup上有一些问题 . 我在github上有2个不同用户的帐号,我在我的系统上安装了2次git
第一个/ .ssh文件夹(像往常一样)(包含在第一个帐户中复制的id_rsa)第二个/.ssh/new文件夹(包含在第二个帐户中复制的id_rsa)
现在在推送时如何在ssh键之间切换?
因为如果我想推送第二个帐户,它将使用.ssh键而不是.ssh / new并给我错误 .
如果我在这里理解错误,请让我纠正 .
谢谢 .
1 回答
(我已经投票决定将其作为一个可能的副本关闭,但我还是可以添加一个类似的答案 . )
使用SSH传输时,GitHub会根据您用于进行身份验证的SSH密钥将您识别为用户 . 因此,您需要确保git使用一个SSH密钥用于一个存储库而另一个用于另一个存储库 .
我会假设:
您有一个名为
user1
的GitHub帐户,并且您已向该帐户添加了与您的本地私钥/home/whoever/.ssh/id_rsa
对应的公钥 . 让's say that the repository you'有兴趣访问user1
在GitHub上是user1/whatever
.您有第二个名为
user2
的GitHub帐户,并且您已向该帐户添加了与您的本地私钥/home/whoever/.ssh/new/id_rsa
对应的公钥 . 让's say that the repository you'有兴趣访问user2
在GitHub上是user2/whatever
.处理此问题的最简单方法是为每个存储库创建一个新的"remote"(即远程存储库的昵称),其中主机名位于
~/.ssh/config
中的每个远程's URL is actually an alias that you'中 . (如果该配置文件不能创建它 . )例如,
~/.ssh/config
文件中的一个条目可能如下所示:然后你可以添加一个名为
gh-user1
的遥控器,比如:...然后如果你想使用
~/.ssh/id_rsa
键将你的master
分支推送到GitHub上的存储库user1/whatever
,你可以这样做:为了将其他用户(
user2
)推送到第二个存储库,您需要为您添加第二个别名~/.ssh/config
文件 . 例如:然后,作为不同的用户推送到第二个存储库,您可以这样做: