首先修改host,将需要互相免密的机器相互加入到host文件中:
vi /etc/hostname #添加主机名 hadoop2 vi /etc/sysconfig/network #添加IP和hostname对应关系 192.168.8.107 hadoop2
重启reboot生效
-
查询本机是否有安装ssh包
rpm -qa|grep ssh
如果没有则安装ssh
yum -y install sshd #(yum install openssh-server) 安装ssh服务
-
修改ssh配置文件(启用22端口)
vi /etc/ssh/sshd_config #重启ssh服务 systemctl restart sshd
-
开放防火墙22端口为公开
firewall-cmd --zone=public --add-port=22/tcp --permanent 重启防火墙 systemctl restart firewalld.service 重新载入配置 firewall-cmd --reload 查看 public 区域下所有已打开的端口 firewall-cmd --zone=public --list-ports
-
每台机器生成密钥
扫描二维码关注公众号,回复: 15326924 查看本文章ssh-keygen -t rsa
一路回车啥都不要输入
-
第四步操作后会在你当前用户的home文件夹下生成一个隐藏文件夹.ssh
#快速回到home cd ~ #查看隐藏文件夹 ls -a cd .ssh
-
将公钥写入authorized_keys
cat id_rsa.pub >> authorized_keys sudo chown root:root authorized_keys #这一步是对权限进行修改,777为最高权限,这一步可改为777以免报权限不够的错误 sudo chmod 600 authorized_keys
将authorized_keys传输到其他的服务器对应的.ssh文件夹下,将对应的id_rsa.pub用同样方式写入,最后保证每台机器都有其余服务器的公钥
scp -r authorized_keys root@slave1:/root/.ssh
-
重启ssh后看是否能免密登录其他服务器
#重启ssh后在hadoop1上ssh远程免密hadoop2(第一个hadoop2是用户,第二个是hadoop1的host里配置的hadoop2,对应的是ip映射) ssh hadoop2@hadoop2 #语句等于下面语句 ssh [email protected] #成功后exit退出 #如果提示要输入密码,请重复上一步修改文件夹和文件属性