0%

ssh-keygen命令

一、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

几点说明:

  1. “type”是“RSA,DSA,ECDSA,ED25519,RSA1”5种类型之一
  2. 创建得到的公钥私钥文件只能存放在“~/.ssh/”目录下
  3. 交互式命令,需要指定私钥文件名(公钥文件名=私钥文件名.pub)

4.2、管理“passphrase”

1
ssh-keygen -p

几点说明:

  1. 交互式命令,需要选择欲操作“passphrase”的私钥文件
  2. 可用于清除旧的“passphrase”

4.3、创建“Host Key”

1
ssh-keygen -A

几点说明:

  1. 需要以root身份运行以上命令
  2. 针对每种支持的密钥类型创建公钥私钥对,其中的公钥作为“Host Key”

参考文献: [1]man ssh-keygen
您的支持将鼓励我继续分享!