无密码公共密钥key的配置是搭建Hadoop的过程中比较容易卡住的地方。现总结常见问题如下。
1、为何需要从master到slave的无密码ssh:用作master远程启动slave。所以需要master可以无密码登陆到salve机器上去执行bin下的启动脚本。
2、如上原因,那么在无密码ssh的过程中,slave是认证的服务端,master是客户端。
3、大致无密码公钥ssh的原理就是在客户端生成一对公/私钥对(id_rsa.pub\id_rsa),私钥在本地,公钥上传到服务端,用作让服务端认证自己。(大致看一下公钥文件内容,是一串密钥+客户端的host)。
理解了这些基本点,就不用死记配置过程了^_^
1、在master和slave的启动用户默认路径下建立.ssh文件夹。
2、在master上通过ssh-keygen -t rsa 。把.pub改名成authorized_key,分发到各个slave的.ssh下。
然后坑的地方就来了。对于.ssh目录,公钥、私钥的权限都有严格的要求。
1、用户目录755或700,不能使77*
2、.ssh目录755
3、.pub或authorized_key644
4、私钥600
如果权限不对可能不能无密码ssh(具体原因是遗留问题),如果经过上述步骤不能达到目的。调试的手段就很必要了。有两个。
1、ssh -v:ssh具体过程调试信息会打出
2、/var/log/secure:该日志中有失败原因