跳到文章

配置多个ssh密钥

一般一个 ssh 密钥就可以满足需求,去 clone github 的代码,但是有些时候,可能需要多个 ssh 密钥,例如 github 用一个密钥,工作上用另一个密钥,这时候就需要做一些配置。

首先在生成的时候,需要指定一下文件名,避免重名导致原有的 ssh 密钥被覆盖。例如可以像下面一样,加一个 work 后缀。之后一路按 enter。

[edward@DESKTOP-1OJ55DM release]$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/edward/.ssh/id_rsa): /home/edward/.ssh/id_rsa_work

命令结束后,会在 ~/.ssh/ 文件夹下看到多个 ssh 文件

# edward @ DESKTOP-1OJ55DM in ~/.ssh [15:27:47]
$ ls
config  id_rsa  id_rsa.pub  id_rsa_work  id_rsa_work.pub  known_hosts

接下来是最重要的一步,现在每当使用 ssh 的时候,都会默认使用 id_rsa 这个密钥,不会使用 id_rsa_work 。 需要在配置文件中指定。

~/.ssh 文件夹下创建 config 文件,文件由多个下面的代码块组成

Host *别名*
    HostName *主机名(ip地址)*
    User *用户名*
    IdentityFile *指定的ssh密钥*

例如

Host 10.20.20.20
    HostName 10.20.20.20
    User centos
    IdentityFile /home/edward/.ssh/id_rsa_work

这样当你用 centos 这个用户访问 10.20.20.20 这个 ip 时,就会使用 id_rsa_work 这个密钥。