Linux ssh-keygen命令语法及使用详解

Linux ssh-keygen命令用于创建生成、管理和转换SSH认证密钥等用途,Linux百科来详细说下SSH的ssh-keygen命令语法及使用详解:

ssh-keygen命令语法详解

Linux系统下ssh-keygen命令可用于生成、管理和转换SSH认证密钥。使用SSH v1(SSH协议版本1)创建RSA密钥,使用SSH v2(SSH协议版本2)创建RSA密钥。使用-t选项指定生成密钥的类型。如果不带任何选项,使用ssh-keygen命令会生成用于SSH v2连接的RSA密钥。

命令语法:ssh-keygen [选项]

不同选项含义对照表如下:

选项 含义
-N<新密语> 提供新的密语
-v 详细模式
-P<密语> 提供旧密语
-b<位数> 指定创建密钥的位数。对于RSA密钥,最小尺寸为768位。DSA密钥必须刚好1024位
-C<注释> 提供新的注释
-F<主机名> 搜索known_hosts文件中指定的主机名,列出发现的任何事件
-f<文件名> 指定密钥文件的文件名
-t<类型> 指定密钥创建的类型。SSH v1可能的值为rsa1,SSH v2可能的值为rsa或dsa
-r<主机名> 显示指定主机公钥文件的SSHFP指纹资源记录
-R<主机名> 从known_hosts文件中删除所有属于指定主机名的密钥。这个选项主要用于删除经过哈希的主机的密钥
-e 读取OpenSSH的私钥或公钥文件,并以RFC 4716 SSH公钥文件格式在标准输出上显示出来
-p 请求更改私钥文件的密码短语,而不是创建一个新的私钥
-q 安静模式
-B 显示指定的公钥和私钥文件的bubblebabble摘要
-y 读取OpenSSH专有格式的公钥文件,并将OpenSSH公钥显示在标准输出上
-c 请求改变私钥和公钥文件的注释。支持RSA1密钥操作
-g 在使用-r选项显示指纹资源记录的时候使用通用的DNS格式
-i 读取未加密的SSH v2兼容的私钥/公钥文件,然后在标准输出显示OpenSSH兼容的私钥/公钥
-H 对known_hosts文件进行哈希计算。这将把文件中的所有主机名/IP地址替换为相应的哈希值。原来文件的内容将会添加一个“.old”后缀后保存。这些哈希值只能被ssh和sshd使用。这个选项不会修改已经经过哈希的主机名/IP地址,因此可以在部分公钥已经哈希过的文件上安全使用
-l 显示公钥文件的指纹数据。它也支持RSA1的私钥。对于RSA和DSA密钥,将会寻找对应的公钥文件,然后显示其指纹数据

常见的ssh-keygen命令使用举例:

创建ssh认证密钥,指定密钥文件为:/root/.ssh/known_hosts

[root@linuxbaike~]# ssh-keygen -f /root/.ssh/known_hosts

创建RSA密钥

[root@linuxbaike~]# ssh-keygen

使用-t参数创建一个指定密钥的类型并添加注释

[root@linuxbaike~]# ssh-keygen -t rsa -C "name@linuxbaike.com"

显示主机rhel的公钥文件的SSHFP指纹资源记录

[root@linuxbaike~]# ssh-keygen -r rhel

使用-e参数读取openssh的私钥或者公钥文件

[root@linuxbaike~]# ssh-keygen -e

2023服务器优惠,阿里云PK腾讯云!
①阿里云:阿里云5M带宽服务器60元1年起(1c2g/2c4g/2c8g/4c8g/8c16g/16c32g)
②腾讯云:腾讯云2核4G服务器8M带宽74元一年(有高配)
③华为云:华为云1核2服务器1M带宽60元一年(配置多款可选)
⑤代金券:阿里云代金券限量发放中(有账号就能领)