1.原理。通过拷贝公钥到对方服务器实现免密
2.条件:三台centos8,而且都在一个局域网内,IP地址如下
主机名 | ip地址 |
master | 192.168.18.128 |
server1 | 192.168.18.129 |
server2 | 192.168.18.130 |
1)修改客户端配置文件,三台机器都要做
[root@master .ssh ]# vim /etc/ssh/ssh_config
将#StrictHostKeyChecking ask 修改为StrictHostKeyChecking no
这样可以保证客户端连接其他服务器时不必再输yes,修改配置文件后要重启sshd服务
[root@master ~]# systemctl restart sshd
2)主机名与ip地址的映射,三台机器都要做
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.18.128 master
192.168.18.129 server1
192.168.18.130 server2
3)修改主机名,配置相关网络----->以master为例
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.18.2 ipv4.addresses 192.168.18.128/24 ipv4.dns 192.168.18.2 connection.autoconnect yes ipv4.method manual
[root@localhost ~]# nmcli con up ens33
3.免密步骤
1)每台服务器下都输入命令:
ssh-keygen -t rsa
生成key,一律不输入密码,直接回车,/root 就会生成 .ssh文件夹。
2)在master服务器上合并公钥到 authorized_keys 文件。通过ssh把server1和server2的公钥也拷贝到这个文件中
cat id_rsa.pub >> authorized_keys
ssh master #内回环 连接自己
ssh root@server1 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh root@server2 cat ~/.ssh/id_rsa.pub>> authorized_keys
--------------------------------------------------------------------------------------------------------------------------通过以上步骤即可实现ssh免密登录,可以通过ssh 主机名 也可通过IP地址的方式实现。
若是非root用户,则在对应用户的家目录实现与此类似步骤即可。