在CentOS下装Hadoop的时候,到了配置SSH免密码登录配置这一步,怎么也不行。网上搜罗了不少办法,都不能解决。我开始用普通用户登录,多次配置不能成功。后来换做root身份,一下就行了!以前在Ubuntu下配置的时候普通用户也能成功的,为什么换成Centos后就不行了呢?
后来一个朋友提醒了我,应该是权限问题。Centos6.0启用了SElinux,在网络服务方面权限要求比较严格,我尝试着把SElinux关闭,重新配置,问题得到解决。下面是配置方法。
首先切换到root身份下,关闭SElinux:
[root@bogon ~]# vi /etc/selinux/config
设置SELINUX=disabled
然后重启。
本机免密码登录ssh
普通用户登录,输入命令:
ssh-keygen -t dsa
一直回车,然后:
cd ~/.ssh
cat id_dsa.pub >> authorized_keys
测试:ssh localhost
###
下面,多台互访
在做集群的时候是需要SSH互信的,另外也利于在另一节点操作方便
1.在Node1中生成公钥和私钥对
[root@<span style="font-family:'微软雅黑', sans-serif;">me</span>~]# ssh-keygen -t dsa
Generatingpublic/private rsa key pair.
Enterfile in which to save the key (/root/.ssh/id_dsa): 回车
Enterpassphrase (empty for no passphrase): 回车
Entersame passphrase again: 回车
Youridentification has been saved in /root/.ssh/id_dsa.
Yourpublic key has been saved in /root/.ssh/id_dsa.pub.
这期间一直按回车即可,这样公钥/私钥对就创建完毕
3.将公钥传送到Node2上,这样在Node1上就可以免密码登录Node2了
现在我们已经可以在Node1上免密码登录Node2了
如果出现
[root@Node2 .ssh]# scp id_rsa.pub Node1:.ssh/authorized_keys
-bash: scp: command not found
则是说明未安装openssh-clients
执行
yum install openssh-clients
注意:scp
命令会将authorized_keys文件原来的密钥
(vim 文件名,然后:wq退出),scp到新建的文件,然后用cat命令把新建的文件追加到authorized_keys文件 即可覆盖掉
,要多台机器免密码互访,则再任建一文件