集群环境ssh免密码登录设置
今天刚刚学习,总结一下 以免以后忘记
参考https://www.cnblogs.com/ivan0626/p/4144277.html
https://www.cnblogs.com/ivan0626/p/4144277.html
集群环境ssh免密码登录设置
一、准备工作
- 用客户端工具(ssh client或者putty)连接到linux服务器。在root用户下输入命令
vi /etc/hosts,用vi编辑hosts文件,如下:
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.253.128 hadoop1
192.168.253.129 hadoop2
192.168.253.130 hadoop3
1 2 3 都要配
二、在每台机上产生新的rsa公钥私钥文件,并统一拷贝到一个authorized_keys文件中
- 登录hadoop1,在.ssh目录下输入命令:
ssh-keygen -t rsa
2)登录hadoop1,输入命令:
cat id_rsa.pub > authorized_keys
vi authorized_keys 打开
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5T0HO+zPxb8Y7fN5H7wE4DCQF2gfPF+BiDQq1/OThZaRnwGL10/Q81pmzhkDc57i42HBKgQZcMn68Xto5R1yoZ0izZp9p89Q6e0jQaMYuqeYbDekmC4YG+74hu/GCK2Kyc4WyyDuyzv4dyqcR82gRSdy3TBEZs01oi4w4NV4Z4GtdHg6mdgewBUMBxuAvPYW6jXjqJI6Cvhy7UE1I6liMiDdEfipZQbBbl1UR0qnv9hiOfsobyGDQHB9ZVBF4pgKRCzxsY8KHGmrVUbrYmkNIGRDd4h3X2aT/CAHcWXO1Zt0AJZBb1vbK3I4LZYshxPMzr4L/yVj1e1SeSfkEKIVww== root@hadoop1
登录其他主机,将其他主机的公钥文件内容都拷贝到hadoop1主机上的authorized_keys文件中,
[root@hadoop1 .ssh]# cat authorized_keys
hadoop2
cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxeglbXtnB+PgFE0JS2dZ22LULDFus9G02dEGRUHFOU+kGijNjL5ZS1flU9f1jKr/Q0goZJ8dVqEslt/OmeD6POaRnq7ru7y+8x/9JkVviWeSX8sa8vKBIUQVW32djChACSFqCvBzlBgLs7XUJqzaVWshB7DJuOWBDhyxA0vnSpo2Bqg7ngVGaIlvjygKew2DPv2Basenez7hQ2BUQVjKoTaw14N0YmWF3kHO+xygCpT5X4Qkkx8Ww3j6zTYAfVv5VSHYyJX8FcfoYqias2/IKiI7SnT7zO0iEA4tFtrzp0gkmmYZWtaFxWrF7C23ebmRiRTziNWQ4FFk9Z93upit8Q== root@hadoop2
[root@hadoop1 .ssh]# cat authorized_keys
hadoop3
cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Wka9xNTOAtVwgZRxO3N3tvlxF1UVF9FwdeOTQJgSESuioqtvct651ew1y0PQcF0DXTiApe0BScH1TkJZeDKLK77gic4gL8jRLOX4D9STj05XueIhS2KpzavzIXAs8SuzmbVz2dCzUW2CPCg90I921vC/UBgrr4pSoQVstcnDdJZrBAphUt9hF71fMPo3O8yRCcII71QYJLwALg79kmJKn69GW4Fp4CJrFdpxTUdPjuoA4CBWnZE0u0Ts7tPh06SCjDfH/gYcU4bVnz5YR2R3ekbB4bykmiRDMOl/ZAIvknnzYnQOtxBxcuNNgLDWqIyVh0oijs7xlJaX++J4WDyYw== root@hadoop3
最终authorized_keys文件内容如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5T0HO+zPxb8Y7fN5H7wE4DCQF2gfPF+BiDQq1/OThZaRnwGL10/Q81pmzhkDc57i42HBKgQZcMn68Xto5R1yoZ0izZp9p89Q6e0jQaMYuqeYbDekmC4YG+74hu/GCK2Kyc4WyyDuyzv4dyqcR82gRSdy3TBEZs01oi4w4NV4Z4GtdHg6mdgewBUMBxuAvPYW6jXjqJI6Cvhy7UE1I6liMiDdEfipZQbBbl1UR0qnv9hiOfsobyGDQHB9ZVBF4pgKRCzxsY8KHGmrVUbrYmkNIGRDd4h3X2aT/CAHcWXO1Zt0AJZBb1vbK3I4LZYshxPMzr4L/yVj1e1SeSfkEKIVww== root@hadoop1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxeglbXtnB+PgFE0JS2dZ22LULDFus9G02dEGRUHFOU+kGijNjL5ZS1flU9f1jKr/Q0goZJ8dVqEslt/OmeD6POaRnq7ru7y+8x/9JkVviWeSX8sa8vKBIUQVW32djChACSFqCvBzlBgLs7XUJqzaVWshB7DJuOWBDhyxA0vnSpo2Bqg7ngVGaIlvjygKew2DPv2Basenez7hQ2BUQVjKoTaw14N0YmWF3kHO+xygCpT5X4Qkkx8Ww3j6zTYAfVv5VSHYyJX8FcfoYqias2/IKiI7SnT7zO0iEA4tFtrzp0gkmmYZWtaFxWrF7C23ebmRiRTziNWQ4FFk9Z93upit8Q== root@hadoop2
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Wka9xNTOAtVwgZRxO3N3tvlxF1UVF9FwdeOTQJgSESuioqtvct651ew1y0PQcF0DXTiApe0BScH1TkJZeDKLK77gic4gL8jRLOX4D9STj05XueIhS2KpzavzIXAs8SuzmbVz2dCzUW2CPCg90I921vC/UBgrr4pSoQVstcnDdJZrBAphUt9hF71fMPo3O8yRCcII71QYJLwALg79kmJKn69GW4Fp4CJrFdpxTUdPjuoA4CBWnZE0u0Ts7tPh06SCjDfH/gYcU4bVnz5YR2R3ekbB4bykmiRDMOl/ZAIvknnzYnQOtxBxcuNNgLDWqIyVh0oijs7xlJaX++J4WDyYw== root@hadoop3
三、授权authorized_keys文件
- 登录hadoop1,在.ssh目录下输入命令:
chmod 600 authorized_keys
效果如下:
[root@hadoop1 .ssh]# ls -al
total 20
drwx------ 2 root root 4096 Nov 18 22:21 .
dr-xr-x—. 8 root root 4096 Nov 18 22:29 …
-rw------- 1 root root 394 Nov 18 22:02 authorized_keys
-rw------- 1 root root 1675 Nov 18 21:54 id_rsa
-rw-r–r-- 1 root root 1183 Nov 18 22:21 id_rsa.pub
四、将授权文件分配到其他主机上
1)登录hadoop1,将授权文件拷贝到hadoop2、hadoop3,命令如下:
scp /root/.ssh/authorized_keys hadoop02:/root/.ssh/ #拷贝到hadoop2上
会提示
The authenticity of host ‘hadoop2 (192.168.253.129)’ can’t be established.
RSA key fingerprint is d2:39:45:a0:11:83:ed:38:64:c7:ff:5c:4a:e6:eb:af.
Are you sure you want to continue connecting (yes/no)? 选择yes
root@hadoop2’s password: (输入hadoop2的密码 cloudera hadoop3同理)
scp /root/.ssh/authorized_keys hadoop03:/root/.ssh/ #拷贝到hadoop3上
2)至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录
五、测试
从hadoop1中进入 hadoop2 输入hadoop2
[root@hadoop1 .ssh]# ssh hadoop2
成功
[root@hadoop2 ~]
退出
[root@hadoop2 ~]# exit
从hadoop1中进入 hadoop3 输入hadoop3
[root@hadoop1 .ssh]# ssh hadoop3
成功
[root@hadoop3 ~]
退出
[root@hadoop3 ~]# exit