文章目录
第一步:首先我们得先准备一个虚拟机集群并且能通过主机名称ping成功
本人已经准备了test01
和test02
两个虚拟机
如果不会创建集群可以参考我之前写的此篇博客,地址如下:
https://mp.csdn.net/mdeditor/102669331#
第二步:关闭防火墙和seliunx (如果已经关闭了,可以直接跳过)
1.关闭防火墙
# centOS 6
# 关闭防火墙
service iptables stop
# 设置为开机不自启
chkconfig iptables off
#centOS 7
# 关闭防火墙
systemctl stop firewalld.service
#禁止开机自启
systemctl disable firewalld.service
2.设置selinux
vi /etc/selinux/config
第三步:使用 keygen生成公钥和私钥 生成地址为(/root/.ssh)
生成之前可以先去/root
目录下查看一下.ssh
是否存在,如果存在说明已经配置过了那么下面ssh-keygen此行代码就不必运行,或者把 .ssh
目录删除也可以
方法一
1.在每台虚拟机任意目录下执行此命令生成公钥和私钥
ssh-keygen 按三下回车
2.进入 .ssh目录
cd /root/.ssh
3.添加test01虚拟机的秘钥 注意要输入密码 第一次会询问是否确认 输入yes
就行
如果是自身是test01 的话就不用添加 test01的秘钥 因为一般人不会自己登陆自己
这需要每台虚拟机都进行配置
ssh-copy-id test01
4.添加test02虚拟机的秘钥 以此类推…
ssh-copy-id test02
ssh-copy-id test03
5.测试 如果不需要密码说明配置成功了
ssh test01
方法二
只需要在第一台虚拟机上按照步骤配置就行 不过
有区别的是 在添加虚拟机秘钥的时候记得把本身的秘钥也添加进去
也就是说假设你的虚拟主机名称是 test01
在走到方法一的 第3步和第4步时
执行如下代码
ssh-copy-id test01
把虚拟机本身的秘钥也添加进去就行了
测试成功之后再走下一步
然后可以
通过 scp 命令 把第一台虚拟机 /root/.ssh 目录(隐藏文件夹) 拷贝到其它虚拟机的 /root/ 目录下
也可以实现相同的效果,亲测有效,注意拷贝完成之后记得检查 看是否少文件
一般来说应该是4个文件
如下图
第四步: 配置失败解决办法
如果上述操作都确认没问题并且都执行后还是不能成功, 可以试着重启一下sshd 服务以及重新连一下会话连接, 如果还是不行修改
/etc/ssh/sshd_config
文件中的以下内容, 如果最后文件修改了之后还是不行就得去看具体的安全日志, 然后根据安全日志去进行问题的排查
重启sshd 服务
# centos6
service restart sshd
# centos7
systemctl restart sshd
/etc/ssh/sshd_config
文件需要修改的内容
#运行密码登录
PasswordAuthentication yes
#允许root认证登录
PermitRootLogin yes
#允许密钥认证
RSAAuthentication yes
PubkeyAuthentication yes
#默认公钥存放的位置
AuthorizedKeysFile .ssh/authorized_keys
查看日志
tail -100f /var/log/secure
如果不会scp命令可以参考我的另一篇博客
https://blog.csdn.net/hongchenshijie/article/details/102698511
最后:
如果如果有遇到问题可以在评论区留言探讨一下,我看到会及时回复。