【Linux】节点之间配置免密登录

文章目录

  • 1、实现
  • 2、原理
  • 3、SSH的理解

1、实现

先写实现,解决问题后有兴趣的自己看后面的原理。

以实现节点A(主)免密登录到节点B(从)为例:(注意例子里节点B被登录)

步骤一:生成节点A密钥对

在节点A执行以下指令,一路回车,生成密钥对文件。

# 一路回车即可
ssh-keygen -t rsa -P ''

步骤二:将主节点的公钥文件拷贝到从节点上

将节点A的公钥文件拷贝到要被登录的节点B上。

scp ~/.ssh/id_rsa.pub  root@你节点B的IP:~

步骤三:将主节点的公钥追加到从节点的授权文件中,并加权

在节点B执行:

cat  ~/id_rsa.pub >>  ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub

验证下效果,在节点A,ssh登录节点B,此时不提示输入节点B的密码,直接登录成功。

ssh 节点B的IP

2、原理

$HOME/.ssh/authorized_keys 文件中列出允许登录的(用户的)公钥.,当用户开始登录,ssh程序告诉服务器它准备使用哪对钥匙(公钥)做认证,服务器检查这只密钥(公钥)是否获得许可,如果许可,服务器向用户(实际上是用户面前运行的ssh 程序) 发出测试, 用用户的公钥加密一个随机数,这个随机数只能用正确的私钥解密,随后用户的客户程序用私钥解出测试数字,即可证明用户掌握私钥。由于私钥只被客户端持有,因此即使服务器被攻破,也无法获取到会话密钥,从而保护了用户的隐私和安全。

看图吧,大段文字有点窒息。

【Linux】节点之间配置免密登录_第1张图片

直白讲就是,A要免密码登录到B,B首先要拥有A的公钥,此外B还要做一次加密验证,这次验证中,对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开,因此A的公钥文件泄露也问题不大,因为这个验证拦截者只用公钥过不去。

3、SSH的理解

最后,贴一篇SSH的文章,很赞。

【深入理解SSH】

文中的图:

【Linux】节点之间配置免密登录_第2张图片

你可能感兴趣的:(Linux笔记,linux,运维,服务器)