阿里云环境下部署3台机器间的SSH互相信任和hosts文件配置
** 配置用户多台机器的ssh互相信任关系**
准备环境:阿里云服务器,机器选择按量付费,定时释放实例。
useradd hadoop
su - hadoop
mkdir app
确保app下有三个软件包
1、三台机器统一切换到hadoop用户下,执行如下命令:rm -rf .ssh、
ssh-****** 三个回车。
2、在hadoop001机器下:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 追加秘钥到“authorized_keys”这个信任文件。
3、要将hadoop002、hadoop003的公钥文件传给hadoop001,在hadoop002下操作:scp id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa2
注意:172.19.40.141这个是hadoop002的内网ip。
同在hadoop003下也进行如下操作:
scp id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa3
此时回到hadoop001机器下查看如下目录:
[[email protected] .ssh]$ ll
total 24
-rw------- 1 hadoop hadoop 1194 Apr 11 12:59 authorized_keys
-rw------- 1 hadoop hadoop 1675 Apr 11 12:35 id_rsa
-rw-r--r-- 1 root root 398 Apr 11 12:47 id_rsa2
-rw-r--r-- 1 root root 398 Apr 11 12:47 id_rsa3
-rw-r--r-- 1 hadoop hadoop 398 Apr 11 12:35 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop 810 Apr 11 12:50 known_hosts
cat id_rsa2 >> authorized_keys
cat id_rsa3 >> authorized_keys
把id_rsa2 、id_rsa3都追加到 authorized_keys这个文件后,
scp authorized_keys [email protected]:/home/hadoop/.ssh/
scp authorized_keys [email protected]:/home/hadoop/.ssh/
成功界面如下图:
chmod 600 authorized_keys 除了root用户以外的用户都需要赋予600权限。
ssh hadoop002 date 开始进行通信,首次通信输入yes以及密码。
疯狂提示密码输错,注意此处是hadoop用户,useradd hadoop的用户的时候是没有密码的。
回到hadoop001把这个"authorized_keys"文件追加到hadoop002和hadoop003:scp authorized_keys [email protected]:/home/hadoop/.ssh/ scp authorized_keys [email protected]:/home/hadoop/.ssh/
注意:chmod 0600 ~/.ssh/authorized_keys 这个600权限是官网中说道的:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
回顾:1、配置多台机器的ssh互相信任关系,无密码登录。
2、把三台机器的公钥文件都追加到authorized_keys这个信任关系文件。
3、再把这个authorized_keys文件下发到hadoop002和hadoop003机器。
4、使用ssh hadoop001 date,远程过去执行一个命令触发新人关系的连接。**坑:第一次输入yes会在known_hosts文件中存在记录;生产中秘钥文件发生变更,连接进行抛错。解决办法,只删除一行记录。**
问题:公钥文件发生变更,再次连接连不上,答案:vi 命令进入known_hosts,找到那一个ip连接,删除该条记录(一行记录)
目的:
二、hosts文件配置
切换到root用户进行如下映射关系
su - root
vi /etc/hosts
172.19.40.139 hadoop001 hadoop001
172.19.40.141 hadoop002 hadoop002
172.19.40.140 hadoop003 hadoop003