参考
环境
- 虚拟机+三个节点 centos 7.5 【ubuntu的配置类似】
1.修改主机名字
命令格式:
hostnamectl set-hostname
hostname master #【临时修改,重启失效】
?
示例:
hostnamectl set-hostname master
hostname master
?
三个节点以此类推
2.修改映射关系
在master节点上修改/etc/hosts文件,添加如下内容:
$ vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# 以下是添加的
192.168.204.10 master
192.168.204.11 slave1
192.168.204.12 slave2
?
将master节点的hosts文件分发到slave节点:
scp /etc/hosts root@slave1:/etc/
scp /etc/hosts root@slave2:/etc/
?
这个过程会让你输入密码
3.启动ssh无密码登录
在master
节点的/etc/ssh/sshd_config
文件中去掉注释
vim /etc/ssh/sshd_config
RSAAuthentication yes #开启私钥验证 这是需要添加的
PubkeyAuthentication yes #开启公钥验证,去掉注释即可
在这个文件中只有“Authentication:”选项,修改这个就行~
再次通过scp
命令将sshd_config
文件分发
到其他节点
scp /etc/ssh/sshd_config root@slave1:/etc/ssh/
scp /etc/ssh/sshd_config root@slave2:/etc/ssh/
?
4.生成公、私钥
在每个节点输入:【执行过程一律回车】
ssh-keygen -t rsa -P ‘‘
结果如下:
[root@master ~]# ssh-keygen -t rsa -P ‘‘
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:42:2d:15:39:cc:f6:4a:9c:da:57:5b:55:b8:18:5d root@master
The key‘s randomart image is:
+--[ RSA 2048]----+
| ooo . +E |
| o* . + |
| oo.+ + . |
| . .+ . . o . |
| .+....So |
| ..o.... |
| . |
| |
| |
+-----------------+
?
在master节点执行:
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
?
查看slaves
节点的id_rsa.pub
文件,将文件内容复制到master
节点的authorized_keys
文件中
分发authorized_keys
文件到slaves
节点
scp authorized_keys root@slave1:~/.ssh/
scp authorized_keys root@slave2:~/.ssh/
?
重启sshd服务:【每个节点都要重启】
systemctl restart sshd.service
?
5.验证ssh无密码登录
[root@master]# ssh slave1
Last login: Tue Jun 26 11:35:53 2018 from master
[root@slave1 ~]#
?
第一次会提示你输入密码,在选择yes/no的 时候,输入yes
Tips.当使用以上方式达不到免密登陆,请使用ssh-copy-id命令
语法格式:
ssh-copy-id [-i [identity_file]] user@machine
?
选项
-i:指定公钥文件
?
实例1:不指定公钥文件
[root@master]# ssh-copy-id root@slave1
[root@master]# ssh-copy-id root@slave2
?
实例2:指定公钥文件
[root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
[root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
?
如果提示:
[root@master]# ssh-copy-id:command not found
?
执行以下命令:
[root@master]# yum -y install openssh-clients
?