linux 下hadoop的免密登录

       分发~/.ssh/authorized_keys

Authorized_keys的作用是可以免密码地使用SSH跨节点相互访问

生成密钥

在NameNode上使用ssh-keygen命令生成密钥对

ssh                        #先运行一下ssh命令

ssh-keygen          #生成密钥对(一路回车,如果已经有了,直接使用现有的)

生成的密钥对在~/.ssh中,分别是:

id_rsa                    #私钥

id_rsa.pub             #公钥~

授权公钥

在NameNode上使用cat命令将公钥追加到授权文件,授权后可以免密码访问

cat id_rsa.pub >> authorized_keys          (要先进入~/.ssh)

 

加入已知主机(生成known_hosts文件)

在NameNode上使用ssh slave1访问DataNode,输入yes

成功后使用ssh master访问NameNode,输入yes

known_hosts文件记录了用户已经yes过的公钥指纹,以后不用再反复yes了

 

配置SSH关闭密钥检查

touch config

在.ssh文件中创建config文件,写入以下内容

Host *

    StrictHostKeyChecking no

设置后,以后就不会询问yes了

 

分发.ssh

将NameNode上的~/.ssh复制到所有DataNode上,让整个集群使用同一对密钥

并且已经授权

scp -r ~/.ssh root@slaveXX:~/

 

注意事项(一般情况下是正常的,请直接跳过这一小节)

SSH相关的文件对权限比较敏感,其它用户不能有写权限

如果遇到总是需要密码才能登录的问题可以按下面检查并更改权限:

~                                          #权限700

~/.ssh                                   #权限700

~/.ssh/id_rsa                        #权限600

~/.ssh/id_rsa.pub                 #权限600

~/.ssh/known_hosts             #权限600

~/.ssh/authorized_keys        #权限600

设置权限

chmod 600 ~/.ssh/authorized_keys

 

猜你喜欢

转载自blog.csdn.net/tianshi2020/article/details/83154010