http://leezk.com/2013/09/hadoop/hadoop-ssh%E6%97%A0%E5%AF%86%E7%A0%81%E9%AA%8C%E8%AF%81-217
SSH无密码验证 应该算是Hadoop环境配置中最麻烦的一个环节了,稍不主要就会出差错。Hadoop的安装配置其实很简单,但是实现 SSH无密码验证 并不那么轻松配成功,下面是我配置 SSH无密码验证 的操作过程。
SSH无密码验证 的原理
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
1.检查是否安装了SSH服务和rsync服务
rpm -qa | grep openssh
rpm -qa | grep rsync
如果没有安装则执行一下安装:
yum install ssh
yum install rsync
service sshd restart 启动服务
2 Master实现无密码登录Salve
1> 以root用户登录,更改SSH的配置文件
vi /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
重启SSH服务: service sshd restart
2> 以新建用户hadoop身份登录
su – hadoop
ssh-keygen -t rsa 生成密钥文件,一切按默认的方式生成,密钥文件生成后默认存放位置为/home/hadoop(你的用户名)/.ssh
将id_rsa.pub加到授权的key里面去:cat id_rsa.pub >> authorized_keys
修改authorized_keys的权限,(这一步很重要不然的话,SSH时仍然需要密码)
chmod 600 authorized_keys
查看本机是否可以SSH无需密码登录: ssh localhost
OK,到此已经证明本机登录成功!