GitHub 用户,
我是 github 的新手,并且在 git 设置方面遇到一些问题。
我在 github 上有 2 个不同用户的帐户,并且我在系统上设置了 git 2 次
First /.ssh文件夹(像往常一样)(包含首先复制的 id_rsa
帐户)
Second /.ssh/新文件夹(包含复制到的 id_rsa
第二个帐户)
现在在推送时我如何在 ssh 密钥之间切换?
因为如果我想推送第二个帐户,它将使用 .ssh 密钥而不是 .ssh/new 并给我错误。
如果我在这里理解有误,请纠正我。
Thanks.
(我投票决定将其作为可能的重复项关闭,但无论如何我也可以添加类似的答案。)
使用 SSH 传输时,GitHub 会根据您用于身份验证的 SSH 密钥将您识别为用户。因此,您需要确保 git 对一个存储库使用一个 SSH 密钥,对另一个存储库使用另一个 SSH 密钥。
我假设:
- 您有一个名为的 GitHub 帐户
user1
,并且您已将与您的本地私钥对应的公钥添加到该帐户/home/whoever/.ssh/id_rsa
。假设您有兴趣访问的存储库为user1
is user1/whatever
在 GitHub 上。
- 您有第二个 GitHub 帐户,名为
user2
并且您已将与您的本地私钥对应的公钥添加到该帐户/home/whoever/.ssh/new/id_rsa
。假设您有兴趣访问的存储库为user2
is user2/whatever
在 GitHub 上。
处理这个问题的最简单方法是为每个存储库创建一个新的“远程”(即远程存储库的昵称),其中每个远程 URL 中的主机名实际上是您在其中设置的别名~/.ssh/config
。 (如果该配置文件不存在,则必须创建它。)
例如,其中的一个条目~/.ssh/config
文件可能如下所示:
Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
然后你可以添加一个名为gh-user1
,比如说:
git remote add gh-user1 git@github-as-user1:user1/whatever.git
...然后如果你想推动你的master
分支到存储库user1/whatever
在 GitHub 上使用~/.ssh/id_rsa
关键,你可以这样做:
git push gh-user1 master
为了以其他用户的身份进行推送(user2
)到第二个存储库,您需要添加第二个别名~/.ssh/config
文件。例如:
Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
然后,要以不同的用户身份推送到第二个存储库,您可以执行以下操作:
git push gh-user2 master
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)