Linux 管理多个 SSH Key

Contents
  1. 1. 生成钥匙对
    1. 1.1. ED25519
    2. 1.2. RSA
    3. 1.3. 例如
  2. 2. 添加公钥
  3. 3. 建立 config 文件
  4. 4. 登录
  5. 5. 更改 Passphrase
  6. 6. References

本文最后更新于 2019 年 5 月 7 日


本文介绍多个 SSH Key 的管理和使用方法,适用于:不同主机的不同用户,同一主机的不同用户。


生成钥匙对

运行命令:

ED25519

1
ssh-keygen -a 1000 -t ed25519 -f ~/.ssh/起的名字 -C "username@host"

RSA

1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/起的名字 -C "username@host"

例如

1
ssh-keygen -a 100 -t ed25119 -f ~/.ssh/hi -C "hello@world"

随后,你可以把 .pub 的公钥添加到你要登录的主机/网站上了。

添加公钥

对于一些网站,可以在控制界面添加 .pub 文件中的内容。对于主机,则可进行如下操作:

1
ssh-copy-id -i ~/.ssh/filename.pub user@server

建立 config 文件

新建一个名为 config 的文件:

1
vim ~/.ssh/config

在其中添加类似的代码,以管理两个密钥为例:

~/.ssh/config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Host *
ServerAliveInterval 30
IdentitiesOnly yes

Host host1 # 别名
HostName ipaddress1 # IP 地址或域名等
Port 22 # 端口
User root # 用户名
IdentityFile ~/.ssh/filename1 # 私钥文件

Host host2 # 别名
HostName ipaddress2 # IP 地址或域名等
Port 22 # 端口
User root # 用户名
IdentityFile ~/.ssh/filename2 # 私钥文件

显然,用户可以使用不同别名,来配置对于同一主机的不同用户的登录方案( HostName 可以相同 ),
自然也可以配置不同主机的登录方案。

修改权限:

1
chmod 600 ~/.ssh/config

登录

可使用配置的别名直接登录:

1
2
ssh host1
ssh host2

至此,已经完成对多个 SSH Key 的管理配置了。

更改 Passphrase

如果需要对私钥的密码进行修改,执行:

1
ssh-keygen -p -f ~/.ssh/起的名字

References

How do I change my private key passphrase?

Upgrade Your SSH Key to Ed25519

Mastodon