SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来。
SSH配置
的集群中的每台主机上打开配置
sudo vim /etc/ssh/sshd_config
开启下面的选项
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile.ssh/authorized_keys
生成SSH密钥
的集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。
ssh-keygen -t rsa
执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub
把公钥写入authorized_keys文件
把自己的公钥拷贝到集群中的Master(192.168.3.155)机
ssh-copy-id hadoop@HadoopMaster
最终在Master机上生成如下的内容的~/.ssh/authorized_keys文件:
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEA7DSKXFCp7RlrUyTqyiej8cHbu5qVEPG4hFhXI1gfCXg/dGrtxDh0XbrvZ+jf
KVJCtDC2et+aUz5YPd9B3mPUTHSjP5nJpv7CEaYDzzAVym6MA/CQ/y4qgq5QL4q8v/oyaY/kuJqIfZKmCTPZGjItI3Izic/RTs2B8oquFgYhRK0b9xFIgA48Dl08OKVif8DGdj3r8svQVJmdTQTa6+/3EE51mzntImnSVjo5PrVc3X7sZp2Ns9uuj6d9diAUBX/J0xHDBGFZW3WzH7fYjMhKqgh8KeGuIoGpQK+ox36eAkU0632+YK2MLGxehZ9k+vq8F9rRlHWkAbZ25lTqSA80Mw==hadoop@localhost.localdomainssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAmIsaN5LO2ENIGSrOdidVfsKnfkEAezxDRS+pRJ0CRUAI2WYppwSm6KTQjtd5
gFQ8lp11hDwgL13+UZqTwreT/LNt/jAeTKJdXGXVEMOPNEtAZ1wX1ohYydtrKZ+N1hxMKOGk2ONzyNl/T810GcUvPkw3XluzptOaOXiDKcfePW0E6PO8v8N3owOKW6F0USdQB/AkG62zOcK4x9OLm6pUTXGxvwoYEIBe3W777oL9P02EbEV1lmcNbVC2UMIfwN+6K0pXD11BGtHntSuo0lUyOlCZtaa22PEPVqE1yFX0JXirEzrs+0tgpCVyu6svrw+Mn3ZIZF9s1jVd5sHszOGLiw==hadoop@localhost.localdomain
把HadoopMaster的authorized_keys拷贝到HadoopSlave1(192.168.3.156)和HadoopSlave2(192.168.3.157)
scp ~/.ssh/authorized_keys hadoop@192.168.3.156:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@192.168.3.157:~/.ssh/
重启SSH服务
sudo service sshd restart
测试连接
ssh 192.168.3.156
ssh 192.168.3.157
常见免密码登录失败分析
配置问题
1. 检查配置文件/etc/ssh/sshd_config是否开启了AuthorizedKeysFile选项
2. 检查AuthorizedKeysFile选项指定的文件是否存在并内容正常
目录权限问题
1. ~权限设置为700
2. ~/.ssh权限设置为700
3. ~/.ssh/authorized_keys的权限设置为600
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
设置完了记得重启ssh服务