目的
在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手动启动,集群内服务器几台还好,要是像阿里1000台的云梯hadoop集群的话,轨迹启动一次集群就得几个工程师一两天时间,是不是很恐怖。如果使用免密登录,主服务器就能通过程序执行启动脚步,自动帮我们将从服务器的应用启动。而这一切就是建立在ssh服务的免密码登录之上的。所以要学习集群部署,就必须了解linux的免密码登录。
原理
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
提示(新手必读)
- (1)配置免登录前,请确保网络环境达到要求(后续内容有详细说明)
- (2)免登录其实是在本机生成两把锁,一把所谓的公钥是放到要登录的那台服务器上的,其实是一串文本。
- (3)被登录的服务器上只会有一个公钥文件,叫authorized_keys。如果被登录的服务器有多个客户端要连上来,就会把每个文本密钥存成一行。
- (4)客户端发送到服务器端的密钥文件一定要放到登录用户主目录的~/.ssh这个隐藏目录下,
- 比如用hadoop用户登录到192.168.102.248服务器,如果hadoop的主目录是/home/hadoop,那么,密钥文件一定是在/home/hadoop/.ssh/下
- (5)如果直接将authorized_keys的文件从客户端通过scp或者ssh-copy-id方式发送到服务器端,会覆盖原来的文件,对其他用户有影响,所以发送时要进行改名后合并,
配置环境:
(1)服务器IP、名称、网卡信息
3台 Redhat 5.6 linux 64位系统内容如下:
IP地址: 服务器名称 网卡名称 用户名 主目录
192.168.102.247 hadoop1 eth0 hadoop /home/hadoop
192.168.102.248 hadoop2 eth0 hadoop /home/hadoop
192.168.102.249 hadoop3 eth0 hadoop /home/hadoop
配置准备:
(1)添加用户
- 1. 以root用户分别登录各服务器。
- 2. 执行如下命令,创建用户。
- useradd -d /home/hadoop -s /bin/bash -m hadoop
- 3. 执行如下命令,为用户“hadoop ”设置密码。
- passwd hadoop
- 4. 您需要根据系统的提示输入两次密码“aaaa@1111”。