最近搭建集群过程中,阅读了此文章,对ssh的解释透彻易懂,对原理不熟悉的朋友推荐一看。
原理部分转自下面链接的部分内容
十分详细的原理阐述,如果对ssh的实现原理感兴趣可以看一下原文。本文只针对linux命令实现相关的部分做讨论。
1 SSH免密登录原理
如果不熟悉免密登录,可以先看2的部分,先自己配一遍免密登录,再来看该部分则会豁然开朗。
我们已经掌握如何使用ssh登录远程服务器了,但是每次登录都要输入密码,比较麻烦。ssh提供一种免密登录的方式:公钥登录。
- 在客户端使用
ssh-keygen
生成一对密钥:公钥+私钥 - 将客户端公钥追加到服务端的
authorized_key
文件中,完成公钥认证操作 - 认证完成后,客户端向服务端发起登录请求,并传递公钥到服务端
- 服务端检索
authorized_key
文件,确认该公钥是否存在 - 如果存在该公钥,则生成随机数
R
,并用公钥来进行加密,生成公钥加密字符串pubKey(R)