Linux 使用 ssh-keygen 生成 RSA 密钥对

什么是 SSH 和 RSA密钥

RSA 是一种公钥加密算法,在 1977 年由麻省理工学院的 Ron Rivest, Adi Shamir, Leonard Adleman 三人一
起提出,因此该算法命名以三人姓氏首字母组合而成。SSH 是 Secure Shell 缩写,是建立在应用层和传输层基础上
的安全协议,为计算机上运行的 Shell 提供安全的传输和使用环境。传统的 rsh, FTP, POP 和 Telnet 网络协议
因为传输时采用明文,很容易受到中间人方式攻击。为了防止远程传输信息出现泄露,SSH 协议支持对传输的数据进行加
密,因此它还能防止 DNS 和 IP 欺骗。另外采取 SSH 协议传输的数据可以进行压缩,所以可以加快数据传输速度。最
初 SSH 协议由芬兰的Tatu Ylönen在 1995 年设计开发,目前属于 SSH Communications Security 拥有,由于
版权原因,199910 月开源软件OpenSSH被开发出来,它已成为事实上的 SSH 协议标准实现(SSH 
Communications Security 提供的 SSH 软件使用不同于 OpenSSH 的私钥格式),也是目前 Linux 标准配置。

工具

OpenSSH 提供了以下几个工具:

ssh:实现 SSH 协议,用以建立安全连接,它替代了较早的 rlogin 和 Telnet。

scp, sftp:利用 SSH 协议远程传输文件,它替代了较早的 rcp。

sshd:SSH 服务器守护进程,运行在服务器端。

ssh-keygen:用以生成 RSA 或 DSA 密钥对。

ssh-agent, ssh-add:管理密钥的工具。

ssh-keyscan:扫描网络中的主机,记录找到的公钥。

方案

交互界面生成命令

$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/home/xavier/.ssh/id_rsa): id_rsa

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in id_rsa.

Your public key has been saved in id_rsa.pub.

The key fingerprint is:

ce:89:59:3d:a1:3a:99:b3:01:46:78:0f:d1:cc:d4:fa xavier@Qbee-X

The key's randomart image is:

+--[ RSA 2048]----+

|    .=..         |

|   . .+ .        |

|  . +  .  .      |

|   o o.  o .     |

|    o ..S o      |

|   . . XE. .     |

|      X +        |

|       =         |

|      .          |

+-----------------+

ssh-keygen 默认使用 RSA 算法,长度为 2048 位,生成一个私钥文件 id_rsa 和一个公钥文件 id_rsa.pub,
两个文件默认保存在用户的 ~/.ssh 目录下。你可以在命令行交互过程指定密钥文件路径,也可以设置密钥口令,如果设
置了密钥口令,在使用密钥进行登录时,需要输入口令。快速生成命令

ssh-keygen -t rsa -P '' -f '/root/.ssh/id_rsa'

执行后将会生成 id_rsa 的密钥和 id_rsa.pub 的公钥。

参考资料

在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥

「滋磁一下」
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值