如何创建并配置多账户Github SSH keys

随着github账号的日益增多,以及账号的保密性要求,使我需要创建不同的ssh key给不同的github账号,由于烦于每次都需要查指令,因此决定自拟教程一份。

本地创建ssh公钥私钥

  1. ssh-keygen -t rsa -C "youremail@com"

指令一旦执行会要求你填入一些option,此时需要注意:

  • 默认情况下,指令会为你在~/.ssh下创建两个文件id_rsa以及id_rsa.pub

但是因为我需要多组公私钥,因此,如果使用默认选项会导致我的公私钥出现问题,因此我们可以选择自定义的公私钥文件名以及文件所在的位置

Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):自定义私钥文件名以及地址(例如:~/.ssh/id_haha_rsa)
Enter passphrase (empty for no passphrase):  回车
Enter same passphrase again: 回车
----result
Your identification has been saved in ~/.ssh/id_haha_rsa.
Your public key has been saved in ~/.ssh/id_haha_rsa.pub.
The key fingerprint is:
*******************
*******************

本地修改ssh config

一般会在~/.ssh有一个config文件,用来管理所有ssh的相关内容(如果没有可以自己创建)。
通过对 ~/.ssh/config 文件的配置你可以大大简化 SSH 相关的操作

举个例子

.ssh/config

Host example                       # 关键词
    HostName example.com           # 主机地址
    User root                      # 用户名
    IdentityFile ~/.ssh/id_ecdsa # 认证文件

Host github.com                       # 关键词
    HostName github.com           # 主机地址
    User git                          # 用户名
    IdentityFile ~/.ssh/id_rsa # 私钥地址
一般ssh
  • 如果你直接执行:ssh example 就等同于 ssh [email protected],并且会默认的直接访问到IdentityFile地址找出私钥,不需要你手动输入密码
github ssh
  • 如果细心留意会发现当你在git repo下执行git remote会出现

origin [email protected]:githubUser/repoName.git (fetch)

说明你push的时候类似于ssh登录,git是用户名,github.com是hostname,而push的时候类似于自动执行了ssh github.com, 就会到IdentityFile指定的位置找私钥,利用这个私钥和配置在github上的公钥配对

  • 那么,如何配置多个账户给github呢?

    • 先配置config file
    Host github-COMPANY
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_rsa_COMPANY
    
    • 修改repo remote
    git remote add origin git(用户名)@github-COMPANY(Host):githubUser/repo.git
    

将公钥配置到github上

如何创建并配置多账户Github SSH keys_第1张图片
image.png

核心

  • 创建不同文件名的公私钥文件
  • 学会配置config文件(IdentityFile)
  • 多账户需要学习修改remote的user@Host

你可能感兴趣的:(如何创建并配置多账户Github SSH keys)