git 如何使用两个key

不及物动词 其他 204

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在使用Git时,有时候我们需要使用两个不同的SSH 密钥对,例如一个用于GitHub,另一个用于其他Git仓库。下面是一种常见的解决方案:

    1. 生成第一个SSH密钥对:
    – 打开终端,并执行以下命令:`ssh-keygen -t rsa -b 4096 -C “your_email@example.com”`
    – 按照提示输入文件名和密码。
    – 密钥对将被生成在默认的`~/.ssh`目录下,私钥文件为`id_rsa`,公钥文件为`id_rsa.pub`。

    2. 生成第二个SSH密钥对:
    – 打开终端,并执行以下命令:`ssh-keygen -t rsa -b 4096 -C “your_other_email@example.com”`
    – 按照提示输入文件名和密码。
    – 密钥对将被生成在默认的`~/.ssh`目录下,私钥文件为`id_rsa_second`,公钥文件为`id_rsa_second.pub`。

    3. 将SSH密钥添加到ssh-agent:
    – 启动ssh-agent:`eval “$(ssh-agent -s)”`
    – 添加第一个SSH私钥:`ssh-add ~/.ssh/id_rsa`
    – 添加第二个SSH私钥:`ssh-add ~/.ssh/id_rsa_second`

    4. 配置Git使用不同的SSH密钥:
    – 打开终端,并执行以下命令:`cd ~/.ssh`
    – 创建一个config文件:`touch config`
    – 打开config文件并添加以下内容:
    “`
    # 第一个SSH密钥对
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

    # 第二个SSH密钥对
    Host other-git-repo.com
    HostName other-git-repo.com
    User git
    IdentityFile ~/.ssh/id_rsa_second
    “`
    – 替换`github.com`和`other-git-repo.com`为相应的Git仓库地址。

    通过以上步骤,你就可以在使用Git时使用不同的SSH密钥对了。请注意,当克隆或添加远程仓库时,请使用正确的远程仓库地址。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Git 是一个版本控制系统,用于管理和跟踪项目的代码变更。使用两个 SSH key(Secure Shell Key)在 Git 中是允许的,主要是为了在不同的 Git 服务器上使用不同的身份验证。

    以下是使用两个 SSH key 的步骤:

    1. 生成 SSH key
    首先,需要生成两个不同的 SSH key。可以使用以下命令在终端中生成新的 SSH key:

    “`
    ssh-keygen -t rsa -C “your-email@example.com” -f ~/.ssh/id_rsa_work
    “`
    这条命令会生成一个新的 RSA 类型的 SSH key,并将其保存在 `~/.ssh/id_rsa_work` 的位置。同样,在生成另一个 SSH key 时,需要将文件名替换为其他名称,以便区分。

    2. 添加 SSH key 到 GitHub
    在生成 SSH key 后,需要将其添加到 GitHub 或其他 Git 服务器上。打开 GitHub 的网站,并登录到您的账户。然后,点击头像,进入 `Settings` 页面。选择 `SSH and GPG keys` 选项卡,点击 `New SSH key`。在 `Title` 字段命名该 key,将公钥文件(`.pub` 后缀)的内容粘贴到 `Key` 字段中。最后,点击 `Add SSH key`。

    重复以上步骤,将另一个 SSH key 添加到 Git 服务器上。

    3. 配置本地 SSH config 文件
    为了在本地使用两个 SSH key,需要编辑 SSH config 文件。在终端中,打开 `~/.ssh/config` 文件(如果不存在则创建它),并添加以下内容:

    “`
    # Default GitHub account
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

    # Work GitHub account
    Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
    “`
    这段配置指定了默认的 GitHub 账户使用主 SSH key(`id_rsa`),而工作账户使用另一个 SSH key(`id_rsa_work`)。Host 和 HostName 可以根据需要自定义,但是需要保持唯一性。

    4. 建立 SSH 连接
    现在,可以使用 Git 命令通过 SSH 连接到不同的 Git 服务器。例如,使用以下命令克隆一个工作项目:

    “`
    git clone git@github.com-work:your-username/work-repo.git
    “`
    这条命令中的域名 `github.com-work` 对应于 SSH config 文件中的 Host 配置。

    5. 配置 project-specific SSH key
    如果有些项目需要使用特定的 SSH key,可以在项目的 `.git/config` 文件中进行配置。找到 `[remote “origin”]` 字段,并添加以下内容:

    “`
    url = git@github.com-work:your-username/work-repo.git
    “`
    这会将特定项目的远程 URL 配置为使用工作 SSH key。

    通过上述步骤,您可以使用两个不同的 SSH key 在 Git 中进行身份验证,并同时访问不同的 Git 服务器。这对于在个人和工作项目之间切换非常有用。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    使用两个 key 主要是为了方便在多个 Git 服务提供商之间来回切换或者在同一个 Git 服务提供商上使用不同的账号。

    在进行配置之前,请确保已经安装了 Git 并且已经生成了至少一个 SSH 密钥。

    以下是配置并使用两个 SSH 密钥的步骤:

    ## 生成 SSH 密钥

    1. 打开终端(Windows 用户可以使用 Git Bash 或者其他支持 SSH 的终端)
    2. 输入以下命令生成一个新的 SSH 密钥:
    “`
    ssh-keygen -t rsa -C “your_email@example.com”
    “`
    请替换 your_email@example.com 为你的邮箱地址,并按照提示输入文件名和密码(可以留空)。
    3. 输入以下命令生成第二个 SSH 密钥:
    “`
    ssh-keygen -t rsa -C “your_email@example.com”
    “`
    请确保使用了不同的邮箱地址。
    4. 生成的密钥文件默认保存在 `~/.ssh/` 目录下,第一个密钥文件的文件名为 `id_rsa`,第二个密钥文件的文件名为 `id_rsa2`。

    ## 配置 SSH 密钥

    1. 打开 `~/.ssh/` 目录:
    “`
    cd ~/.ssh/
    “`
    2. 复制 `id_rsa.pub` 文件中的内容,并将其粘贴到 SSH 密钥配置页面(如 GitHub、GitLab 等)。
    3. 将第二个密钥文件的公钥内容复制到新的 SSH 密钥配置页面中。

    ## 配置文件

    在 `~/.ssh/` 目录下创建 `config` 文件,如果已经存在则打开该文件。

    1. 在文件中添加以下内容,将其中的 `Host`、`HostName`、`IdentityFile` 替换为你需要的信息:
    “`
    Host github
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

    Host gitlab
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa2
    “`
    这样,你就创建了两个别名为 `github` 和 `gitlab` 的主机配置,分别对应不同的 Git 服务提供商。

    ## 使用不同的 SSH 密钥

    接下来,你可以使用不同的 SSH 密钥来进行 Git 操作了。

    1. 将 Git 仓库的 URL 修改为别名形式。例如,如果要克隆 GitHub 上的一个仓库,使用以下命令:
    “`
    git clone git@github:your_username/your_repository.git
    “`
    2. 如果要在 GitLab 上进行操作,使用别名形式的 URL:
    “`
    git remote add origin git@gitlab:your_username/your_repository.git
    “`
    3. 现在,当你使用 `git push` 或者其他 Git 命令时,Git 会自动查找并使用对应的 SSH 密钥认证。

    通过以上步骤,你就可以轻松地在同一个机器上使用两个不同的 SSH 密钥。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部