Linux命令之 ssh-keygen命令

warning: 这篇文章距离上次修改已过1416天,其中的内容可能已经有所变动。

身份验证密钥生成,管理和转换工具(一般随同OpenSSH同时安装)

命令语法

ssh-keygen [参数]

附加参数

参数说明
-a trials在使用 -T 对 DH-GEX 候选素数进行安全筛选时需要执行的基本测试数量。
-B显示指定的公钥/私钥文件的 bubblebabble 摘要。
-b bits指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
-C comment提供一个新注释。
-c要求修改私钥和公钥文件中的注释。(本选项只支持 RSA1 密钥。)程序将提示输入私钥文件名、密语(如果存在)、新注释。
-D reader下载存储在智能卡 reader 里的 RSA 公钥。
-e读取OpenSSH的私钥或公钥文件,并以 RFC 4716 SSH 公钥文件格式在 stdout 上显示出来。(该选项能够为多种商业版本的 SSH 输出密钥。)
-F hostname在 known_hosts 文件中搜索指定的 hostname ,并列出所有的匹配项。(这个选项主要用于查找散列过的主机名/ip地址,还可以和 -H 选项联用打印找到的公钥的散列值。)
-f filename指定密钥文件名。
-G output_file为 DH-GEX 产生候选素数。这些素数必须在使用之前使用 -T 选项进行安全筛选。
-g在使用 -r 打印指纹资源记录的时候使用通用的 DNS 格式。
-H对 known_hosts 文件进行散列计算。这将把文件中的所有主机名/ip地址替换为相应的散列值。原来文件的内容将会添加一个".old"后缀后保存。这些散列值只能被 ssh 和 sshd 使用。这个选项不会修改已经经过散列的主机名/ip地址,因此可以在部分公钥已经散列过的文件上安全使用。
-i读取未加密的SSH-2兼容的私钥/公钥文件,然后在 stdout 显示OpenSSH兼容的私钥/公钥。该选项主要用于从多种商业版本的SSH中导入密钥。
-l显示公钥文件的指纹数据。它也支持 RSA1 的私钥。对于RSA和DSA密钥,将会寻找对应的公钥文件,然后显示其指纹数据。
-M memory指定在生成 DH-GEXS 候选素数的时候最大内存用量(MB)。
-N new_passphrase提供一个新的密语。
-P passphrase提供(旧)密语。
-p要求改变某私钥文件的密语而不重建私钥。程序将提示输入私钥文件名、原来的密语、以及两次输入新密语。
-q安静模式。用于在 /etc/rc 中创建新密钥的时候。
-R hostname从 known_hosts 文件中删除所有属于 hostname 的密钥。(这个选项主要用于删除经过散列的主机(参见 -H 选项)的密钥。)
-r hostname打印名为 hostname 的公钥文件的 SSHFP 指纹资源记录。
-S start指定在生成 DH-GEX 候选模数时的起始点(16进制)。
-T output_file测试 Diffie-Hellman group exchange 候选素数(由 -G 选项生成)的安全性。
-t type指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)
-U reader把现存的RSA私钥上传到智能卡 reader
-v详细模式。ssh-keygen 将会输出处理过程的详细调试信息。常用于调试模数的产生过程。(重复使用多个 -v 选项将会增加信息的详细程度(最大3次)。)
-W generator指定在为 DH-GEX 测试候选模数时想要使用的 generator
-y读取OpenSSH专有格式的公钥文件,并将OpenSSH公钥显示在 stdout 上。

常用范例

生成密钥对

ssh-keygen -t rsa

指定秘钥对长度为4096

ssh-keygen -t rsa -b 4096

生成的密钥生成的密钥


查看是否已经添加了对应主机的密钥

ssh-keygen -F pi.idzd.top

查看pi.idzd.top对应主机的密钥查看pi.idzd.top对应主机的密钥


删除某个主机密钥

当然也可以在~/.ssh/known_hosts文件中删除
ssh-keygen -R pi.idzd.top
评论已关闭