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