由于linux系统安全机制因素,节点之间通信时,默认都是需要输入密码进行登录的,如果节点很多,在启动集群时,就需要每个节点进行输入密码,这是让人很头痛的,因此,需要在节点之间设置ssh无密码登录。
设置步骤:
1,在用户根目录下生成.ssh文件夹
[hadoop@hadoop01 ~]$ ssh 192.168.124.19
The authenticity of host '192.168.124.19 (192.168.124.19)' can't be established.
ECDSA key fingerprint is 83:45:62:04:09:96:b7:c2:2c:7b:18:ff:e0:46:96:1e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.124.19' (ECDSA) to the list of known hosts.
hadoop@192.168.124.19's password:
Last login: Wed Sep 22 21:53:23 2021 from hadoop01
[hadoop@hadoop01 ~]$
默认情况下,该文件夹是不存在的,只有当用户自身以自己的身份用密码登录的方式登录到本机时或者其他节点以当前用户登录用密码登录方式登录到本机时才会自动生成该文件夹。
该文件夹为隐藏文件夹,需要用ll -la才可以查看
[hadoop@hadoop01 ~]$ ll -la
total 44
drwx------. 20 hadoop hadoop 4096 Sep 22 21:54 .
drwxr-xr-x. 3 root root 19 Sep 22 04:42 ..
drwxrwxr-x 5 hadoop hadoop 78 Sep 22 19:57 app
-rw-------. 1 hadoop hadoop 1250 Sep 22 21:12 .bash_history
-rw-r--r--. 1 hadoop hadoop 18 Jun 10 2014 .bash_logout
-rw-r--r-- 1 hadoop hadoop 457 Sep 22 20:00 .bash_profile
-rw-r--r--. 1 hadoop hadoop 231 Jun 10 2014 .bashrc
drwxrwxr-x. 9 hadoop hadoop 4096 Sep 22 19:34 .cache
drwxrwxr-x. 15 hadoop hadoop 4096 Sep 22 20:56 .config
drwx------ 2 hadoop hadoop 24 Sep 22 21:54 .ssh
drwxr-xr-x 2 hadoop hadoop 6 Sep 21 21:43 Templates
drwxr-xr-x 2 hadoop hadoop 6 Sep 21 21:43 Videos
2,执行ssh-keygen -t rsa ,一路回车,直到执行结束,以生成公钥和私钥
[hadoop@hadoop01 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
77:77:47:77:62:17:31:ee:7e:f9:6b:2b:6a:ce:27:7c hadoop@hadoop01
The key's randomart image is:
+--[ RSA 2048]----+
| +.|
| . o|
| o.=|
| ..+o|
| S . . ..o|
| . . ...o|
| . o.|
| .+ E .o|
| o+= oo+|
+-----------------+
[hadoop@hadoop01 ~]$
进入.ssh目录可以查看生成的公钥和私钥文件
[hadoop@hadoop01 ~]$ cd .ssh
[hadoop@hadoop01 .ssh]$ ll
total 12
-rw------- 1 hadoop hadoop 1679 Sep 22 22:00 id_rsa
-rw-r--r-- 1 hadoop hadoop 397 Sep 22 22:00 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop 176 Sep 22 21:54 known_hosts
3,执行命令cat id_rsa.pub >>authorized_keys把公钥写到authorized_keys文件中
[hadoop@hadoop01 .ssh]$ cat id_rsa.pub >>authorized_keys
[hadoop@hadoop01 .ssh]$ ll
total 16
-rw-rw-r-- 1 hadoop hadoop 397 Sep 22 22:06 authorized_keys
-rw------- 1 hadoop hadoop 1679 Sep 22 22:00 id_rsa
-rw-r--r-- 1 hadoop hadoop 397 Sep 22 22:00 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop 176 Sep 22 21:54 known_hosts
4,修改authorized_keys权限,仅允许hadoop用户自身拥有读写权限,其他用户不可读写。
[hadoop@hadoop01 .ssh]$ chmod 600 authorized_keys
[hadoop@hadoop01 .ssh]$ ll
total 16
-rw------- 1 hadoop hadoop 397 Sep 22 22:06 authorized_keys
-rw------- 1 hadoop hadoop 1679 Sep 22 22:00 id_rsa
-rw-r--r-- 1 hadoop hadoop 397 Sep 22 22:00 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop 176 Sep 22 21:54 known_hosts
至此ssh无密码登录设置完成,可以执行连接脚本验证
[hadoop@hadoop01 ~]$ ssh 192.168.124.19
Last login: Wed Sep 22 22:12:45 2021 from hadoop01