Git SSH密钥:github和gitlab的两个不同帐户

时间:2017-08-05 08:36:19

标签: git gitlab ssh-keys

有没有办法通过 SSH密钥使用两个不同的电子邮件地址来操作 GitLab GitHub 帐户?

我有两个邮件ID,username@gmail.comusername@xyz.in我希望将一些项目推送到gitlab以及其他一些项目到github,我也想避免在每个推送命令中输入提示密码。有可能吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用ssh而不是https:将您的公共ssh git上传到服务器,并使用ssh网址。例如,对于github,你不应该有像

这样的网址
https://github.com/<username>/<repo>.git

但你应该

git@github.com:<username>/<repo>.git

-

现在,要使用不同的ssh密钥或用户名,您可以尝试将~/.ssh/config文件设置为

Host           gitlab.com
HostName       gitlab.com
IdentityFile   ~/.ssh/gitlab
User           username@gmail.com

Host           github.com
HostName       github.com
IdentityFile   ~/.ssh/github
User           username@xyz.in

IdentityFile是私人ssh密钥的路径

答案 1 :(得分:1)

github的一个选项是使用personal access tokens。只需登录您的帐户并转到您的设置(点击您的个人资料图片旁边的下拉菜单),然后滚动到设置页面的底部,您将看到“个人访问令牌”的链接。

然后创建一个对repo具有完全访问权限的令牌(如果你想做的只是拉动和推送,那么另一个API访问并不重要。)

创建令牌系统是为了允许API访问github,但它也适用于HTTPS链接。

使用HTTPS而不是SSH克隆您的仓库(或者如果它已经是SSH,那么只需复制HTTPS网址并替换.git/config文件中的SSH网址)。然后编辑您的.git/config文件,并将访问令牌添加到HTTPS网址。

语法是Web浏览器使用的标准Basic Auth语法:

https://<YOUR_GITHUB_USERNAME>:<YOUR_ACCESS_TOKEN>@github.com

我使用它来允许我使用带有多个用户帐户的github(用于工作,个人项目,志愿工作等)。