ssh免密登录
1.hadoop对hdfs集群的管理提供两种脚本
hadoop-daemons.sh 本地启动脚本:对集群中的单个节点操作
start-dfs.sh 集群启动脚本:对集群中所有节点统一操作
2.SSH免密登录(防止集群登录超时)
①生成公私钥
1 ssh-keygen -t rsa
在用户目录下有个.ssh文件(隐藏文件),添加authorized_keys文本,将生成的公钥内容重定向(>>)到该文件中。
②直接使用如下命令,可以看到.ssh文件中自动生成了authorized_keys授信文件
一、准备工作
-
用客户端工具(
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.1.160 hadoop01
192.168.1.161 hadoop02
192.168.1.162 hadoop03
192.168.1.163 hadoop04
192.168.1.164 hadoop05
-
输入命令:
cd .ssh
进入rsa
公钥私钥文件存放的目录,删除目录下的id_rsa
,id_rsa.pub
文件。
二、在每台机上产生新的rsa
公钥私钥文件,并统一拷贝到一个authorized_keys
文件中
-
登录
hadoop01
,在.ssh
目录下输入命令:ssh-keygen -t rsa
三次回车后,该目录下将会产生
id_rsa
,id_rsa.pub
文件。其他主机也使用该方式产生密钥文件。 -
登录
hadoop01
,输入命令:cat id_rsa.pub >> authorized_keys
将
id_rsa.pub
公钥内容拷贝到authorized_keys
文件中。 -
登录其他主机,将其他主机的公钥文件内容都拷贝到
hadoop01
主机上的authorized_keys
文件中,命令如下:ssh-copy-id -i hadoop01 #登录hadoop02,将公钥拷贝到hadoop01的authorized_keys中
ssh-copy-id -i hadoop01 #登录hadoop03,将公钥拷贝到hadoop01的authorized_keys中
ssh-copy-id -i hadoop01 #登录hadoop04,将公钥拷贝到hadoop01的authorized_keys中
ssh-copy-id -i hadoop01 #登录hadoop05,将公钥拷贝到hadoop01的authorized_keys中
最终
authorized_keys
文件内容如下:[root@hadoop01 .ssh]# more authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp7jp4a1/deK4B/eZW8kdiCQvzpKe4Id0uP0DdONFW85r
srZFx92H4yeiJuYWJaZImuiq/feRIo30Dig6obEfuAn13vevdXozcXNlYQ== root@hadoop03ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwpEgmBzfGw1mrKy3Ho8k/h4jrZlRdIzuLs6PKqDPV/Cw
gbe3rIuQcWwGseEQrGjIDhLb9am3dbgDuFeg73RJqFZMOp2y6zQF3jQIew== root@hadoop02ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmc2M6Bzw1cPaDwjbtgynJPWRKv9pDnHjBSn5BDbIX0po
stWUm0LfFAcMwXDwb8RAFj+cH+D/xG6CrORLb4UfroJHa6N64rx/5dmz7w== root@hadoop04ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxAsHr8Jp4vXI7bPGmSsO/+bT43GsxQ4GKdGf8qLPsFY+
f1BLmMquI4n02owzU0zlkj3Px5IcCfQbDQ/JedHcjxEKP2S+9m3yxG4h2Q== root@hadoop05ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyS1PbXTgFqHcGV/k0QUZni5xB5+q71qx4r5xto+WLkVQ
LNo3yYSWraV5KcYIlNPqX6iJKvjLWbNDwD3+70u4nWjBSXXufhff71LdHw== root@hadoop01
三、授权authorized_keys文件
-
登录
hadoop01
,在.ssh
目录下输入命令:chmod 600 authorized_keys
效果如下:
[root@hadoop01 .ssh]# ls -al
total 28
drwx------. 2 root root 4096 Oct 24 12:27 .
dr-xr-x---. 22 root root 4096 Oct 24 19:20 ..
-rw-------. 1 root root 1975 Oct 24 12:27 authorized_keys
-rw-------. 1 root root 1975 Oct 24 12:09 authorized_keys_20141024
-rw-------. 1 root root 1675 Oct 24 12:23 id_rsa
-rw-r--r--. 1 root root 395 Oct 24 12:23 id_rsa.pub
-rw-r--r--. 1 root root 2020 Oct 24 12:10 known_hosts
四、将授权文件分配到其他主机上
-
登录
hadoop01
,将授权文件拷贝到hadoop02
、hadoop03...
,命令如下:scp /root/.ssh/authorized_keys hadoop02:/root/.ssh/ #拷贝到hadoop02上 scp /root/.ssh/authorized_keys hadoop03:/root/.ssh/ #拷贝到hadoop03上 scp /root/.ssh/authorized_keys hadoop04:/root/.ssh/ #拷贝到hadoop04上 scp /root/.ssh/authorized_keys hadoop05:/root/.ssh/ #拷贝到hadoop05上
-
至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。