有没有办法通过 SSH密钥使用两个不同的电子邮件地址来操作 GitLab 和 GitHub 帐户?
我有两个邮件ID,username@gmail.com
和username@xyz.in
我希望将一些项目推送到gitlab以及其他一些项目到github,我也想避免在每个推送命令中输入提示密码。有可能吗?
答案 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(用于工作,个人项目,志愿工作等)。