一、一台电脑使用两个GitHub账户(两个SSH)进行git
如果你有两个 GitHub 账户,并且你想要在同一台计算机上使用 SSH 访问这两个账户,你需要为每个账户生成一个 SSH 密钥对,并且在你的 SSH 配置文件中为每个账户设置一个别名,这是因为 SSH 配置文件中的别名用于指定对应的私钥,然后在 Git 命令中使用别名来指定你想要使用的账户。
生成密钥
在 Windows 上,你可以使用 Git Bash 来生成多个 SSH 密钥。以下是具体步骤:
- 打开 Git Bash。
- 输入以下命令来生成第一个 SSH 密钥:
ssh-keygen -t rsa -b4096-C"[email protected]"
请将
"[email protected]"
替换为你的电子邮件地址。当提示你输入文件路径时,输入一个新的文件路径,例如
~/.ssh/id_rsa_account1
,如下图红色框部分所示(为了方便 id_rsa_account1 可以写成 github 的用户名,最后生成的私钥和公钥会以它命名)。
输入完毕点击回车后,输入访问密码(图方便就直接回车不输,要保险就输个自己的密码,可能下次git的时候会需要输入这个密码)
- 将每个账户的公钥(文件后缀为.pub)添加到对应的 GitHub 账户。你可以在 GitHub 的设置页面中添加公钥。
- 重复上述步骤来生成更多的 SSH 密钥。每次生成新的密钥时,都要使用一个新的文件路径,例如
~/.ssh/id_rsa_account2
。
创建配置文件(单个SSH可不用)
- 创建一个 SSH 配置文件:
touch ~/.ssh/config
- 打开 SSH 配置文件,在你的 SSH 配置文件(通常位于
~/.ssh/config
)中为每个账户设置一个别名:
# Account 1
Host github.com-account1
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_account1
# Account 2
Host github.com-account2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_account2
- 在这个配置文件中,
github.com-account1
和github.com-account2
是别名(图方便就GitHub张),~/.ssh/id_rsa_account1
和~/.ssh/id_rsa_account2
是你的私钥的路径。
那么,当你想要克隆账户 1 的仓库时,你需要使用以下命令:
git clone [email protected]:username/repo.git
在这个命令中,
username
是你的 GitHub 用户名,
repo
是你的 GitHub 仓库的名字。
github.com-account1
是你在 SSH 配置文件中为账户 1 设置的别名。
同样,当你想要克隆账户 2 的仓库时,你需要使用以下命令:
git clone [email protected]:username/repo.git
在这个命令中,
github.com-account2
是你在 SSH 配置文件中为账户 2 设置的别名。
二、只需要一个GitHub账户(一个SSH密钥)
- 如果你只有一个 GitHub 账户,并且你的计算机上只有一个 SSH 密钥,那么你不需要在 SSH 配置文件中设置别名。你可以直接使用
[email protected]:username/repo.git
格式的 URL 来克隆你的仓库。 - 如果你的 SSH 配置文件中有别名,那么你可以删除这些别名,或者你可以将
HostName
设置为github.com
,并将IdentityFile
设置为你的 SSH 私钥的路径。例如:
# Account 1# Host anqingsan
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/anqingsan
# Account 2 以后可以绑定我的大号
在这个配置中,
~/.ssh/id_rsa
是你的 SSH 私钥的路径。
然后,你可以使用以下命令来克隆你的仓库:
git clone [email protected]:username/repo.git
在这个命令中,
username
是你的 GitHub 用户名,
repo
是你的 GitHub 仓库的名字。
三、Git
在克隆仓库时,直接使用ssh进行克隆,而不要使用http,这样后期在 vscode 中就可以跟往常一样直接提交推送到该仓库。
你可以使用以下命令来克隆你的仓库:
git clone [email protected]:username/repo.git
在这个命令中,
username
是你的 GitHub 用户名,
repo
是你的 GitHub 仓库的名字。
要使用 SSH 推送到 GitHub,你需要确保你已经设置了 SSH 密钥,并且已经将你的公钥添加到了你的 GitHub 账户。然后,你需要确保你的远程仓库 URL 是 SSH 格式的,而不是 HTTPS 格式的。
你可以使用
git remote -v
命令查看你的远程仓库 URL。如果它是 HTTPS 格式的(例如,
https://github.com/username/repo.git
),你需要将其更改为 SSH 格式的(例如,
[email protected]:username/repo.git
)。
你可以使用
git remote set-url
命令更改远程仓库 URL。例如:
git remote set-url origin [email protected]:username/repo.git
参考链接
git如何使用ssh推送 • Worktile社区
GitHub仓库配置SSH keys步骤流程图解 - 知乎 (zhihu.com)
关于git使用ssh key认证github和gitee远程推送 - g青苹果 - 博客园 (cnblogs.com)
版权归原作者 夢゛回邊緣☆ 所有, 如有侵权,请联系我们删除。