Git 配置多个 SSH Key

本机配置多个 SSH key

我们会有很多种 git 的使用场景,比如 github,公司代码,或者是其它代码托管平台,这个时候就会需要在本机配置多个 SSH key 。

解决方案

当已配置好 github ssh key,但还需要配置公司 ssh key 时(本机 windows 示例)

  1. 生成第二个 ssh key

    我们打算还是在 .ssh 下生成密钥对

    Shuaiyin@AG MINGW64 ~/.ssh
    $ ssh-keygen -t rsa -C "xxx@company.com"
    Generating public/private rsa key pair.
    # 这里不要直接回车,键入正确的目录,然后输入密钥文件名,防止被覆盖原有密钥,易于区分
    Enter file in which to save the key (/c/Users/Shuaiyin/.ssh/id_rsa): /c/Users/Shuaiyin/.ssh/id_rsa_company
    # 然后一直回车
    

    完成之后就会发现生成 私钥:id_rsa_company 公钥:id_rsa_company.pub

  2. 打开 ssh-agent 代理转发

    eval `ssh-agent -s`
    
  3. 通过 ssh-add 将私钥添加至 ssh-agent

    ssh-add id_rsa_company
    
  4. 在 ~/.ssh 文件夹中创建 config 文件

    添加一下内容

    # github    
        Host github.com
    	HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github
        User Shuaiyin
    
    # company
    	Host 111.111.111.11
    	HostName 111.111.111.11
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_company
        User Shuaiyin
    

    HostHostName 是指定 git 服务器的域名,IP 也是可以的(这里我是乱写的,你可以依据公司的域名或 IP 来写)

    IdentityFile 是私钥的路径

  5. 将 id_rsa_company.pub 公钥内容填入公司 git 服务中

  6. 测试

    • 测试公司密钥

      ssh -T git@111.111.111.11
      
    • 测试 github 密钥

      ssh -T git@github.com
      

Tips:

如果以前 git 已经设置好了全局用户名和邮箱的话,需要 unset 清空

git config --global --unset user.name
git config --global --unset user.email

然后在公司项目 repository 中设置局部的用户名和邮箱

git config user.name "yourname" 
git config user.email "youremail"

这样就可以在不同的项目场景中,使用不同的用户名和邮箱了

最近的文章

Edge Goes Chromium What Does it Mean for Front-End Developers

EdgeGoesChromium:WhatDoesitMeanforFront-EndDevelop…

继续阅读
更早的文章

What Finally Killed AirPower

谁杀死了AirPower原文WhatFinallyKilledAirPower原文大意苹果取消了令人…

继续阅读