1.生成密钥对
[root@ATzoe ~]# ssh-keygen -t rsa #rsa是一种密钥加密算法
执行上述命令之后,会出现下面各个问题,其中第一个是密钥对默认的存放路径,这几个问题都走默认,全部回车就行

生成完密钥之后,进入/root/.ssh/目录下可以看到两个id_rsa文件,一个是id_rsa,一个是id_rsa.pub,其中id_rsa是私钥,id_rsa.pub是公钥

2.将公钥远程拷贝给需要远程连接的服务器
[root@ATzoe .ssh]# scp id_rsa.pub centos@centos:/home/centos

3.将公钥id_rsa.pub加入远程服务器的授权列表中
远程连接到服务器,查看指定目录下是否存在id_rsa.pub,存在则全程传输成功;
[root@ATzoe ~]# ssh centos@centos #此时仍然需要密码登录

查看根目录下是否有.ssh目录,若无,则创建目录.ssh存放公钥的授权列表:
[centos@centos ~]$ mkdir .ssh
进入.ssh目录中并创建公钥的授权列表:
[centos@centos ~]$ cd .ssh
[centos@centos .ssh]$ touch authorized_keys #authorized_keys要生效,权限必须是600
[centos@centos .ssh]$ chmod 600 authorized_keys
将新拷贝的公钥追加到授权列表中:
[centos@centos .ssh]$ cat ~/id_rsa.pub >>authorized_keys
追加成功后,查看授权列表如下:

此时退出远程登录,再次远程登录该服务器就不再需要密码,如果仍然需要密码,则需要再次远程登录来修改.ssh的权限
[root@ATzoe ~]# ssh centos@centos #此时仍然需要密码登录
[centos@centos ~]$ chmod 700 -R .ssh
[centos@centos ~]$ exit
再次登录就不再需要密码了,免密登录已经设置成功

4.对本机登录hadoop免密
将公钥追加到本机的授权列表中即可
[root@ATzoe .ssh]# cat id_rsa.pub >>authorized_keys
[root@ATzoe .ssh]# chmod 600 authorized_keys
之后再启动/停止hadoop便不再需要输入密码:


浙公网安备 33010602011771号