SSH 实现多主机间互相免密登录

SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。从客户端来看,SSH提供两种级别的安全验证:

第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

第二种级别(基于密匙的安全验证)ssh-keygen:需要依靠密匙,你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。

前言

注: 下述操作,在每台主机上都要执行。本示例仅示范:node1免密登录node2、node3
主机名IP地址
node1192.168.1.101
node2192.168.1.102
node3192.168.1.103

修改主机名命令:hostnamectl set-hostname

一、生成密钥

1. 生成RSA密钥对,一路回车即可
ssh-keygen -t rsa
2. 此时会在用户目录的.ssh文件夹下创建一个公钥id_rsa.pub和一个私钥id_rsa

二、上传公钥

将本机公钥id_rsa.pub上传到需要被信任的目标主机,示例:
# 此操作会在目标主机的/root/.ssh目录下生成一个authorized_keys文件
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.102
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.103

三、访问测试

# 如果在/etc/hosts文件中已声明主机名,也可主机名登录 ssh root@node2
ssh root@192.168.1.102
ssh root@192.168.1.103

四、其它说明

如果无法免密登录,可能是文件和目录权限导致。
# 要保证 .ssh 和 authorized_keys 都只有用户自己有写权限,否则验证无效。

# 设置 authorized_keys 权限
chmod 600 authorized_keys
# 设置 .ssh 目录权限
chmod 700 -R .ssh
分享到:
本文链接:https://blog.renzicu.com/2023/06/207.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录