我正在使用以下命令在我的 MAC 上生成 SSH-Keygen
ssh-keygen -t rsa -b 4096 -C "<myemail to github>"
我想为我的两个 GitHub 帐户创建两个 SSH-keygen,然后分别使用它们推送到单独的 GitHub 帐户。但是当我创建 SSH-keygen 文件时,默认使用 id_rsa 文件登录,只允许一个 git 帐户连接。
请帮助我了解如何在将代码推送到 GitHub 存储库时提供正确的 SSH-keygen 文件。
假设您的主目录是/home/userName
并且您的 ssh 密钥存储在.ssh
子目录(Linux 上的默认位置)。
首先,生成具有不同名称的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -f /home/userName/.ssh/id_rsa_1
ssh-keygen -t rsa -b 4096 -f /home/userName/.ssh/id_rsa_2
这将创建以下密钥文件:
/home/userName/.ssh/id_rsa_1
/home/userName/.ssh/id_rsa_1.pub
/home/userName/.ssh/id_rsa_2
/home/userName/.ssh/id_rsa_2.pub
我们还假设id_rsa_1旨在与名为的 GitHub 帐户一起使用user_1, 然后id_rsa_2将用于user_2.
Steps:
- 复制内容
.pub
将文件发送到 GitHub 中的相应帐户:
Settings -> SSH Keys -> 新的 SSH 密钥-> 将密钥粘贴到文本框中
- 编辑(如果不存在则创建)文件
/home/userName/.ssh/config
。我们将为每个 GitHub 帐户分配单独的别名,并将它们映射到github.com。我们将调用别名host_1 and host_2. The config
文件应如下所示:
Host host_1.github.com
HostName github.com
User git
Port 22
IdentityFile /home/userName/.ssh/id_rsa_1
Host host_2.github.com
HostName github.com
User git
Port 22
IdentityFile /home/userName/.ssh/id_rsa_2
- 现在我们可以使用在中分配的别名来克隆存储库
config
文件。如果有一个名为repo_1账户下user_1,可以使用以下命令进行克隆:
git clone git@host_1.github.com:user_1/repo_1
同样,对于repo_2 under user_2:
git clone git@host_2.github.com:user_2/repo_2
希望清楚发生了什么:跑步git
遥控器上的命令host_N.github.com与ssh
语法告诉 git 使用 SSH 作为其传输方式。当 SSH 在配置文件中找到远程的 DNS 名称时,它发现它实际上应该连接到github.com并使用密钥/home/userName/.ssh/id_rsa_N
进行身份验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)