Git SSH密钥:GitHub和GitLab需要两个不同的账号

5

有没有办法通过两个不同的电子邮件地址使用SSH Key操作GitLabGitHub帐户?

我有两个电子邮件地址,username@gmail.comusername@xyz.in。 我想将一些项目推送到GitLab,另一些项目推送到GitHub,并且我还想避免在每次推送命令时输入密码提示。这可能吗?


为了避免ssh询问密码短语,请使用ssh-agent - phd
2个回答

9
您可以尝试使用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密钥的路径


但是在推送到存储库时,它一直要求我输入“用户名”和“密码”。 - JPG
可能是因为您正在使用https网址。我已经相应地更新了我的答案。 - gturri
我在网上搜索了很多,这是唯一真正正确的答案。谢谢 :) - imans77

2
GitHub的一个选项是使用个人访问令牌。只需登录到您的帐户并转到设置(单击个人资料图片旁边的下拉菜单),然后滚动到设置页面底部,您将看到一个名为“个人访问令牌”的链接。
然后创建一个具有对repo的完全访问权限的令牌(如果您想要的只是拉取和推送,则其他API访问不重要)。
令牌系统是为允许API访问GitHub而创建的,但它也可以与HTTPS链接一起使用。
使用HTTPS而不是SSH克隆您的repo(或者如果已经是SSH,则只需复制HTTPS URL并替换您的.git/config文件中的SSH URL)。然后编辑您的.git/config文件并将访问令牌添加到HTTPS URL中。
语法是Web浏览器使用的标准基本身份验证语法:
https://<YOUR_GITHUB_USERNAME>:<YOUR_ACCESS_TOKEN>@github.com

我使用这个工具来允许我在Github上使用多个用户账户(用于工作、个人项目、志愿工作等)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接