任务3:配置SSH免密码连接--自用

任务描述

知识点

  • 掌握配置SSH免密连接

重  点

  • 掌握SSH免密连接
  • 熟练使用Linux命令配置机器间的免密登陆

内  容

  • 配置SSH免密登陆
  • 使用命令分发文件
  • 测试SSH免密登陆

任务指导

Hadoop分布式集群是由多个节点组成,各节点之间需要通过网络访问,如果每次都需要输入密码,非常不方便,所以可以考虑设置各节点之间免密码连接。任务的内容为在各个节点配置SSH,首先在所有集群服务器节点上生成密钥对,然后再将公钥合并到一个公钥文件中,最后将该文件分发到所有节点,这样就可以实现各节点之间的免密码连通了。

通过以下步骤完成集群SSH名密码连接的配置:

  1. 在所有集群服务器中启动SSH免密登陆
  2. 在所有集群服务器中使用命令生成密钥对
  3. 在master中合并所有集群服务器中的公钥到authorized_keys文件
  4. 将master服务器上authorized_keys、known_hosts复制到其他集群服务器中
  5. 测试ssh连接其他节点

任务实现

Hadoop分布式集群是由多个节点组成,各节点之间需要通过网络访问,如果每次都需要输入密码,非常不方便,所以可以考虑设置各节点之间免密码连接。任务的内容为在各个节点配置SSH,首先在所有集群服务器节点上生成密钥对,然后再将公钥合并到一个公钥文件中,最后将该文件分发到所有节点,这样就可以实现各节点之间的免密码连通了。

注意:当前环境初始化已完成,可跳过此步骤。如果出现无法免密码连接的情况,可尝试以下步骤。

1. 在所有集群服务器中启动SSH免密登陆

  • 如果你的Linux没有安装SSH,请首先安装SSH,如果已经安装,则请忽略此步骤。(当前CentOS系统均已经安装SSH)

Ubuntu下安装SSH:

# sudo apt-get install openssh-server;

CentOS下安装SSH:

# yum install openssh-server。 
  • 如果CentOS默认没有启动SSH无密登录,则需要确定/etc/ssh/sshd_config中有以下3行的内容(如果没有请手动添加),每台服务器都要设置,修改的内容如下:

任务3:配置SSH免密码连接--自用_第1张图片

2. 在所有集群服务器中使用命令生成密钥对

  • SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys。
  • 输入命令【ssh-keygen  -t  rsa】生成key,一直回车,都不输入密码,/root就会生成.ssh文件夹,每台服务器都要设置。例如,在master节点上执行如下操作命令:
[ root@master / ]#  ssh-keygen  -t  rsa
  • 然后进行slave1节点,执行如下操作命令:
[ root@slave1/ ]#  ssh-keygen  -t  rsa
  • 然后进行slave2节点,执行如下操作命令:
[ root@slave2/ ]#  ssh-keygen  -t  rsa

      注意,要准确的切换到不同的节点(机器)。

3. 在master中合并所有集群服务器中的公钥到authorized_keys文件

  • 合并公钥到authorized_keys文件,在master服务器,进入/root/.ssh目录
[ root@master / ]# cd /root/.ssh/
  • 使用SSH命令合并,如下所示:
[ root@master .ssh ]# cat  id_rsa.pub   >> authorized_keys
[ root@master .ssh ]# ssh  root@slave1 cat  ~/.ssh/id_rsa.pub >> authorized_keys
[ root@master .ssh ]# ssh  root@slave2 cat  ~/.ssh/id_rsa.pub >> authorized_keys

4. 将master服务器上authorized_keys、known_hosts复制到其他集群服务器中

  • 如果使用SSH命令连接其它节点,则需要公钥文件authorized_keys,分发到所有节点,这样就可以实现各节点之间的免密码连通了。
  • 将master服务器上/root/.ssh/目录下的authorized_keys、known_hosts复制到slave服务器的/root/.ssh目录中,使用【scp -rq  /root/.ssh/authorized_keys  /slave1:/root/.ssh/】命令,具体如下;
[ root@master / ]# scp -rq  /root/.ssh/authorized_keys  /slave1:/root/.ssh/
[ root@master / ]# scp -rq  /root/.ssh/authorized_keys  /slave2:/root/.ssh/
[ root@master / ]# scp -rq  /root/.ssh/known_hosts /slave1:/root/.ssh/
[ root@master / ]# scp -rq  /root/.ssh/known_hosts /slave2:/root/.ssh/

5. 测试ssh连接其他节点       

  • 使用【# ssh 节点主机名或IP地址】命令测试免密连接,例如:
[ root@master / ]# ssh slave1
  • 在第一次请求连接时需要输入一次密码,以后就不需要再输入密码了。使用【exit】命令退出SSH连接。
[ root@slave1/ ]# exit

任务3:配置SSH免密码连接--自用_第2张图片

你可能感兴趣的:(ssh,运维)