共计 2868 个字符,预计需要花费 8 分钟才能阅读完成。
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
在 Hadoop 集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的 Hadoop 集群中 NameNode 启动的时候会远程执行脚本把集群中 DataNode 的也一起启动起来。
这里主要介绍 SSH 的配置和登录失败的情况
SSH 配置
的 集群中的每台 主机 上打开配置
sudo vim /etc/ssh/sshd_config
开启下面的选项
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
生成 SSH 密钥
的 集群中的每台 主机 上执行下面命令,一路回车,可生成本机的 rsa 类型的密钥。
ssh-keygen -t rsa
执行完之后在~/.ssh/ 目录下会生成一个保存有公钥的文件:id_rsa.pub
把公钥写入 authorized_keys 文件
把自己的公钥拷贝到 集群中的 Master 机
ssh-copy-id hadoop@HadoopMaster
最终在 Master 机上生成如下的内容的~/.ssh/authorized_keys 文件:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArYU2kMXsu75Gzwvuby7OoGzC7GVwxVo+ol/7nJVD BpKpJLRHRe/d2HSNe9ZZRWLK2tU0e41baMxrYRoAKJA2ujcWfy7t57c3ArO9hA7KJy7MqMiT8WHQ M3I2Afsx6sVKeQU/czDLXHn+KjwKbR8z0tuycgtxgkaWx1PCpCKeFDAXDVvxYcurSUNaIGL5Egzu Iy97N52ld/WxUZnRRsTPdpW88JkhWdOV1Bdo4O67rNv5tSYKHXfPwqi8NekqoHIExgVRsHLvM8fe xvV4mo8lXYdQPRCyrtM9/V+4kSW8eaBO7w6hM9YVZIspSqx0+OqibWTvqSmiAVh0JmUT0MCeVQ== hadoop@HadoopMaster
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7n27x4qSzRQNGQAL+rT1+91IQnM9cwZYFeSUzrJD GDfwCTJMKnRBYxrDMxTAM6MKjfwwkPzXnbKHLQnDiJKUSdF8H2xcgDMBJLssVQjOc2jSEg/VppQN hJwObbIL3k1FbU2KxkOp7yW5PIodZrgUwlH5wdXtfsPKimvv72uA1KUiqPbYA3ZJqXw9Bt87K6Sv IAkvUjshnfaS+wNEBVwW1dhXyz6DHuY+Tn9330+1oYfdmgSjS4ZqvZVothhhV58DNwzAYwINCpBA tkjFbk/SOf0q/4rSJRpe2yH9xOuZdwqXMfk3dkp0UFZkV2EVSLyaCNKwTbSuKN75FWhgl8QB7w== hadoop@HadoopSlave1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw91O/1NWnbr6/vop+xwnqR/XYNpwkWselzyHNqgD PYgXXsDHsvOZbpTX7pgOTgVSmlZetCdX4C1lsc/PO8IitvvBS/qWU216lXaqlW61RcliCrYH/RwN f8XTLx/Ga04w2qEIFlLOiuH6x/KA22muOLYaSIefXv38xj0Hj41iE5ZIseaLuJogn7iqJ6Fq0wQH i6ueF9BasSWnOHhn6CJamYz3FC9r2m3vwPMkgagPp1FdYyDxodK+MZlwu6TxqP6QQ7BY/Wh5DZK8 C8zpDOZGQgWOrghF58TlZSmJYmukv1NqsY8PCFuoj7vfoUzVKQkyKcEiohwBcTb50vGPl06bMQ== hadoop@HadoopSlave2
把 HadoopMaster 的 authorized_keys 拷贝到 HadoopSlave1 和 HadoopSlave2
scp ~/.ssh/authorized_keys hadoop@HadoopSlave1:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@HadoopSlave2:~/.ssh/
重启 SSH 服务
sudo service sshd restart
测试连接
ssh HadoopSlave1
常见免密码登录失败分析
配置问题
- 检查配置文件 /etc/ssh/sshd_config 是否开启了 AuthorizedKeysFile 选项
- 检查 AuthorizedKeysFile 选项指定的文件是否存在并内容正常
目录权限问题
- ~ 权限设置为 700
- ~/.ssh 权限设置为 700
- ~/.ssh/authorized_keys 的权限设置为 600
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
设置完了记得重启 ssh 服务
下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:
Ubuntu 14.04 下安装 Samba 及 SSH 服务端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm
集群环境 SSH 免密码登录设置 http://www.linuxidc.com/Linux/2017-03/141296.htm
SSH 服务远程访问 Linux 服务器登陆慢 http://www.linuxidc.com/Linux/2011-08/39742.htm
提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm
使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm
使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm
SSH localhost 免密码后依然需要输入密码问题的解决 http://www.linuxidc.com/Linux/2017-02/140642.htm
Ubuntu 集群下利用 Shell 脚本进行 SSH 免密码登陆 http://www.linuxidc.com/Linux/2017-01/140035.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142632.htm