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

Git SSH Key : Two different account for github and gitlab

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

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

您可以尝试使用 ssh 而不是 https:将您的 public ssh git 上传到服务器,然后使用 ssh url。例如,对于 github,你不应该有一个像

这样的 url
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 私钥的路径

github 的一个选项是使用 personal access tokens。只需登录您的帐户并转到您的设置(单击您的个人资料图片旁边的下拉菜单),然后滚动到设置页面的底部,您将看到 link 到 "Personal Access Tokens"。

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

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

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

语法是网络浏览器使用的标准基本身份验证语法:

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

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