Hadoop伪分布式集群实现SSH免密登录
在启动Hadoop时候报了这样一个错误:
Starting namenodes on [hadoop] hadoop: (Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
问题原因:在于没有设置SSH免密登录的问题。
网上有很多种方法解决,改sshd_config,改ssh_config等等,改了半天发现都不对。
因为把配置文件改的乱七八糟,于是重装了ssh,重装过程如下(如果没有改动的话请忽略这部分!):
1.rpm -qa|grep ssh
2.使用rpm -e 命令卸载相关的包
rpm -e openssh-server-7.4p1-21.el7.x86_64
3.查看sshd的服务状态
service sshd status
4.安装
yum install -y openssh-server
5.启动
service sshd
再次查看状态:
然后开始设置SSH免密登录:
(如果你之前已经执行过以下命令,先删除掉.ssh 文件 rm -rf .ssh)
1、用hadoop用户登录,执行如下命令
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成密钥文件,出现
Enter file in which to save the key (/usr/hadoop/.ssh/id_rsa)
直接enter即可。(答应我不要写路径也不写密码好吗,写了密码的话你用密钥登录也要密码,别问怎么知道的,重装了好几遍系统就知道了...)2、将
id_dsa.pub
文件内容导入/authorized_keys
,使用命令:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3、修改本文件的权限,严格按照如下图赋权限:
文件夹赋权限的命令(权限赋值完也要回去检查一下嗷!):
~/.ssh需要是700权限 authorized_keys需要是644权限 chmod 700 ~/.ssh chmod 644 ~/.ssh/authorized_keys
如果不用你输入密码就登上了,那就好了,如果还要密码。那就重装个系统不要乱改照着下面这部分再来一次~祝各位成功。我反正是重装了三次才总结出这篇。
唯有热爱方能抵御岁月漫长。