gpt4 book ai didi

git - 使用多个id_rsa文件(SSH-KEYGEN)在github上推送

转载 作者:行者123 更新时间:2023-12-04 09:28:28 26 4
gpt4 key购买 nike

我正在使用以下命令在我的 MAC 上生成 SSH 注册机

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 key 存储在 .ssh 子目录(Linux 上的默认位置)中。首先,生成具有不同名称的 SSH key :

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

这将创建以下 key 文件:

/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 用于名为 user_1 的 GitHub 帐户,而 id_rsa_2 将用于 user_2

步骤:

  1. .pub 文件的内容复制到GitHub 中的相应帐户:
    设置 -> SSH Keys -> New SSH Key -> 在文本框中粘贴 key
  2. 编辑(如果不存在则创建)文件 /home/userName/.ssh/config。我们将为每个 GitHub 帐户分配单独的别名,并将它们映射到 github.com。我们将调用别名 host_1host_2config 文件应如下所示:
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
  1. 现在我们可以使用 config 文件中分配的别名克隆存储库。如果帐户 user_1 下有一个名为 repo_1 的存储库,则可以使用以下命令克隆它:
git clone git@host_1.github.com:user_1/repo_1

同样,对于 user_2 下的 repo_2:

git clone git@host_2.github.com:user_2/repo_2

希望清楚发生了什么:使用 ssh 语法在远程 host_N.github.com 上运行 git 命令告诉 git 使用SSH 作为其传输。当 SSH 在配置文件中找到远程的 DNS 名称时,它发现它实际上应该连接到 github.com 并使用 key /home/userName/.ssh/id_rsa_N 进行身份验证。

关于git - 使用多个id_rsa文件(SSH-KEYGEN)在github上推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62933943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com