环境说明
Ubuntu 20.04
问题定义
Permission denied (publickey,password)
问题本质
该集群的机器之间禁用了ssh密码登录权限
出现场景
ssh密码权限问题很多场景会出现,本例主要针对hadoop集群安装好后,使用start-all.sh
命令启动集群时出现的ssh问题。
在master主机调用start-all.sh
启动集群时需要与多台slave主机通信,但没有实现ssh免密,所以报错。
解决方法
解决方法网上一搜一大把,基本是有两种方法,第一种只会影响到本用户所处的环境,第二种会影响到整个根目录(因为要修改/etc
目录下的文件)
百度上搜到的答案同质化比较严重(基本是sshkey),谷歌上搜到的答案存在越扯越远脱离原问题的不足,也可能是因为大佬不屑于用简单的方法解决问题。
这里介绍的还是sshkey方法
操作步骤
首先会遇到很多教程没说明的两个坑(如果没有请无视该条)
家目录~
下没有.ssh隐藏文件夹
使用 ssh localhost
命令登录一下本机,就能自动创建出.ssh文件夹
.ssh文件夹里没有authorized_keys文件
直接touch authorized_keys
创建即可
(注意每台master和slave机器都要保证有.ssh和authorized_keys)
在master机器上,执行下行命令来生成密钥