SSH服务配置
通过前面的操作,已经完成了三台虚拟机Hadoop01、Hadoop02和Hadoop03的安装和网络配置,虽然这些虚拟机已经可以正常使用了,但是依然存在下列问题。
(1)实际工作中,服务器被放置在机房中,同时受到地域和管理的限制,开发人员通常不会进入机房操作直接上机操作,而是通过远程连接服务器,进行相关操作。
(2)在集群开发中,主节点通常会对集群中各个节点频繁的访问,就需要不断输入目标服务器的用户名和密码,这种操作方式非常麻烦并且还会影响集群服务的连续运行。
为了解决上述问题,可以通过配置SSH服务来分别实现远程登录和SSH免密登录功能。接下来,就分别对这两种服务配置和说明进行详细讲解。
1.SSH远程登录功能配置
SSH为Secure Shell的缩写,它是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用SSH服务,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
为了使用SSH服务,服务器首先必须安装并开启相应的SSH服务。在CentOS系统下,可以先执行“rpm -qa | grep ssh”指令查看当前机器是否安装SSH服务,同时使用“ps -e | grep sshd”指令查看SSH服务是否启动,如图1所示。
图1 查看是否安装和开启SSH服务
从图1可以看出,CentOS虚拟机已经默认安装并开启了SSH服务,所以不需要进行额外安装,就可以进行远程连接访问(如果没有安装,CentOS系统下可以执行“yum install openssh-server”指令进行安装)。
在目标服务器已经安装SSH服务,并且支持远程连接访问后,在实际开发中,开发人员通常会通过一个远程连接工具来连接访问目标服务器。本教材就介绍一个实际开发中常用的SecureCRT远程连接工具来演示远程服务器的连接和使用。
SecureCRT是一款支持SSH的终端仿真程序,它能够在Windows操作系统上远程连接Linux服务器执行操作。本书采用SecureCRT 7.2版本进行介绍说明,读者可以通过地址 https://www.vandyke.com/download/securecrt/7.2/index.html
,自行下载安装。下载安装完成后,按照以下操作进行远程连接访问。
(1)打开SecureCRT远程连接工具,单击导航栏上的【File(文件)】à【Quick Connect(快速连接)】创建快速连接,并根据虚拟机的配置信息进行设置,如图2所示。
图2 创建快速链接
在图2所示的快速连接设置中,主要是根据要连接远程服务器设置了目标主机名为192.168.121.134(即Hadoop01虚拟机的IP地址)和登录用户root,而其他相关设置通常情况下使用默认值即可。
(2)设置完快速连接配置后,单击图2中的“Connect(连接)”按钮,会弹出“New Host Key(新建主机秘钥)”对话框(主要用于秘钥信息发送确认),如图3所示。
图3 秘钥信息发送确认
(3)单击图4中的“Accept&Save(接收并保存)”按钮。保存完毕后,客户端需要输入目标服务器的用户名和密码,并且可以勾选“Save password(保存密码)”按钮,避免下次连接重复要求输入密码,如图4所示。
图4 输入用户名密码
(4)在图5中输入正确的用户名和密码后,单击“OK(确定)”按钮,SecureCRT远程连接工具就会自动连接到远程目标服务器,如图5所示。
图5 SecureCRT远程连接到Hadoop01服务器
进入到图6所示界面,就表示通过SecureCRT远程连接服务器成功,后续就可以像在虚拟机终端窗口一样,也可以在该工具客户端上操作虚拟机。
2.SSH免密登录功能配置
前面介绍了SSH服务,并实现了远程登录功能,而想要实现多台服务器之间的免密登录功能还需要进一步设置。下面就详细讲解如何配置SSH免密登录,具体如下。
(1)在需要进行统一管理的虚拟机上(例如后续会作为Hadoop集群主节点的Hadoop01)输入“ssh-keygen -t rsa”指令,并根据提示,可以不用输入任何内容,连续按四次Enter键确认,接着就会在当前虚拟机的root目录下生成一个包含有秘钥文件的.ssh隐藏文件。在虚拟机的root目录下通过“ll -a”指令可以查看当前目录下的所有文件(包括隐藏文件),然后进入到.ssh隐藏目录,查看当前目录的文件,如图6所示。
图6 .ssh目录文件
在图6中,.ssh隐藏目录下的id_rsa就是生成的Hadoop01私钥,id_rsa.pub为公钥。
(2)在生成秘钥文件的虚拟机Hadoop01上,执行相关指令将公钥拷贝到需要关联的服务器上(包括本机)。例如执行“ssh-copy-id hadoop02”指令可以将公钥文件拷贝到主机名为hadoop02的虚拟机上(拷贝到其他服务器指令只需修改主机名即可),如图7所示。
图7 验证免密登录
从图7可以看出,在hadoop01主机上生成的公钥拷贝到了hadoop02主机上并自动重命名为authorized_keys。当在hadoop01主机上输入“ssh hadoop02”指令访问hadoop02主机时就不再需要输入密码了。
需要说明的是,上述步骤只是演示了在主机名为hadoop01的机器上生成秘钥文件,并将公钥拷贝到hadoop02主机上,实现了hadoop01到hadoop02的单向免密登录。而本教材后续将使用前面安装的主机名为hadoop01、hadoop02和hadoop03主机进行Hadoop集群搭建,因此,还需要在所有机器上进行上述操作。