背景:搭建Hadoop环境须要设置无密码登录,所谓无密码登录实际上是指经过证书认证的方式登录,使用一种被称为"公私钥"认证的方式来进行ssh登陆。linux
在linux系统中,ssh是远程登陆的默认工具,由于该工具的协议使用了RSA/DSA的加密算法.该工具作linux系统的远程管理是很是安全的。telnet,由于其不安全性,在linux系统中被搁置使用了。算法
" 公私钥"认证方式简单的解释:首先在客户端上建立一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。而后把公钥放到服务器上(~/.ssh/authorized_keys), 本身保留好私钥.在使用ssh登陆时,ssh程序会发送私钥去和服务器上的公钥作匹配.若是匹配成功就能够登陆了。vim
生成秘钥安全
安装:openssh rsync服务器
生成秘钥对:ssh-keygen -t rsa -P '' ssh
文件:id_rsa id_rsa.pub 默认存储路径 /home/abcd/.sshide
把id_rsa.pub追加到受权的key里面:cat id_rsa.pub >> authorized_keys工具
修改受权key的权限:chmod 600 authorized_keysoop
修改ssh配置文件:vim /etc/ssh/sshd_config测试
去掉注释:RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务 : service sshd restart
测试: ssh localhost
2. 将公钥发送到服务器
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/ -->将公钥复制到远程服务器的~/目录
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.134:~/
3. 将公钥追加到受权key中去
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys -->追加公钥到受权key中
保险起见,删除公钥
4. 回到客户机测试: ssh 192.168.1.134