一、ssh-keygen
ssh-keygen程序是用来创建,管理和转换密钥的工具,它支持的密钥类型有“RSA,DSA,ECDSA,ED25519,RSA1”。
前面4种密钥类型适用于“SSH Protocol Version 2”,最后1种密钥类型适用于“SSH Protocol Version 1”。
二、关于“passphrase”
在创建公钥私钥对时,可以设置“passphrase”值,该值用来加密私钥的内容,从而达到保护私钥内容的目的。
三、“Host Key”
为了防止中间人攻击(一台机器冒充SSH Server与你的SSH Client进行连接),给每台SSH Server创建一个唯一标识码,当你的SSH Client试图连接一台SSH Server的时候,通过读取该台SSH Server的这个唯一标识码,并与上次连接之后本地保存的唯一标识码(保存在“~/.ssh/known_hosts”文件中)进行比对,如果一致则认为不存在中间人攻击。该唯一标识码被称为“Host Key”。
“Host Key”本质上是公钥和私钥对中的公钥,存放路径位于“/etc/ssh/”下。
四、具体命令
4.1、创建公钥私钥对
1 | ssh-keygen -t type |
几点说明:
- “type”是“RSA,DSA,ECDSA,ED25519,RSA1”5种类型之一
- 创建得到的公钥私钥文件只能存放在“~/.ssh/”目录下
- 交互式命令,需要指定私钥文件名(公钥文件名=私钥文件名.pub)
4.2、管理“passphrase”
1 | ssh-keygen -p |
几点说明:
- 交互式命令,需要选择欲操作“passphrase”的私钥文件
- 可用于清除旧的“passphrase”
4.3、创建“Host Key”
1 | ssh-keygen -A |
几点说明:
- 需要以root身份运行以上命令
- 针对每种支持的密钥类型创建公钥私钥对,其中的公钥作为“Host Key”
参考文献: [1]man ssh-keygen