linux下使用ssh-keygen生成公钥私钥对

时间:2021-08-16 14:24:40

1.ssh-keygen

     ssh-keygen是unix-like系统的一个用来生成、管理ssh公钥和私钥的工具。


2.用法

常用的重要的选项有:

-b num   指定生成多少比特长度的key,单位为b,默认为1024b

-t    指定生成key的类型,也就是使用哪一种加密算法,可选的有rsa1 | rsa | dsa


使用举例:

$ssh-keygen -t dsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <-----可以输入存放密钥的地址
Enter passphrase (empty for no passphrase): <-----输入密语,可以为空,密语是给私钥文件配置的密码
Enter same passphrase again: <-----确认密语
Your identification has been saved in /root/.ssh/id_rsa. <-----生成的密钥的路径
Your public key has been saved in /root/.ssh/id_rsa.pub. <-----生成的公钥路径
The key fingerprint is:
93:08:88:88:dc:8f:46:d8:a3:09:fc:35:25:50:d0:fe root@CentOS5.2 <------对公钥字符串进行Base编码得到

其中passphrase是给私钥文件设置的密码,当私钥文件被其他人获取后,此密码的配置可以起到一定保护的作用。


3.公钥的指纹fingerprint

(1)公钥指纹

当使用ssh登录到远程主机时,也会出现下面的字样。RSA key fingerprint是指公钥的指纹,ssh登录时输出的是远程主机的公钥指纹,不是公钥哦。使用ssh-kengen -t rsa打印出来的是自身的公钥的指纹。

RSA key fingerprint is 56:86:ff:8c:bb:51:99:35:11:c4:71:91:b6:6b:03:9b.

备注:注意指纹和公钥的区别哦,一般对公钥进行md5或SHA等数据摘要算法计算后所生成的摘要信息就是指纹哦。一般来说,指纹是让公钥的使用者来验证获取到的公钥内容是否正确。

(2)公钥指纹的生成

格式为:ssh-keygen -lf 公钥文件

例如:

ssh-keygen -lf ~/.ssh/ssh_host_rsa_key.pub