« 上一篇下一篇 »

Linux集群服务器配置ssh批量免密快速远程登录

 

   本文装备可完结:集群服务器之间彼此能够ssh免密登录。若只想从单一机器(如master)ssh免密登录其他机器(slave1、slave2),则只跟着操作到第二步即可。

主张先花两三分钟把全文看完再跟着进程操作

操作进程:

1.集群环境:master、slave1和slave2;操作系统为CentOS7。为接下来叙说方便,除了master,其他一切slave统称为slaveX

一切服务器的/etc/hosts文件中都添加了必要的IP到主机名的映射,如下。

192.168.137.20 master

192.168.137.21 slave1

192.168.137.22 slave2

2.装备使得master上可免密登录slaveX。

在master主机上履行以下指令。能够对错root用户,我操作时用的是Hadoop用户。且根据我到目前停止的测验,用哪个用户来做装备,最终就只能经过那个用户完结免密登录,其他用户长途登录仍是需求密码的。

2.1 cd ~  //切换到用户家目录下

2.2 ls -al //检查家目录下有无躲藏途径是 .ssh。假如没有,创立一个。留意检查.ssh目录的权限,是否是 700 (drwx --- ---), 不是的话修改为700

2.3 cd .ssh  //进入到.ssh目录下

2.4 ssh-keygen -t rsa  //指令履行时接连敲回车符即可;

           //该指令将会用rsa算法在~/.ssh目录下生成私钥id_rsa和公钥id_rsa.pub

2.5 ssh-copy-id master  //该指令把生成的公钥文件的内容追加到master的authorized_keys 文件中;

            //留意履行此指令之前authorized_keys文件可能并不存在,不要紧,直接履行该指令就行,会主动生成的,当然也能够自己创立一个;需留意authorized_keys文件的权限得是600;

            //除了ssh-copy-id指令,也能够用cat  id_rsa.pub >> authorized_keys的办法将公钥内容追加到authorized_keys 文件中,实在不可你用复制粘贴的办法把内容追加进去应该也是能够的。

            //履行完该进程之后在master上就能够经过ssh  master指令免密登录自己了。(在这一步之前即使是经过ssh登录自己,也是每一次都需求手动输入密码的)

            //authorized_keys文件中的内容是以ssh-rsa最初的一组字符串,如下图:

注:图中的主机名跟文中描绘的master、slaveX不一致,可是不影响对uthorized_keys 文件中内容格局的了解。

2.6 ssh-copy-id slaveX  //把master的公钥追加到slaveX的authorized_keys 文件中,之后master可免密登录slaveX

3.装备使得slaveX能够免密登录集群中其他机器

经过上面第二步之后,在master上便已经能够ssh免密登录master、slaveX了,可是从slaveX上仍然无法ssh免密登录其他机器(master、slaveX),若想使得slaveX也像master那样能够免密登录其他机器,则需求在slaveX上也履行第2步相同的进程,即:在slaveX上生成自己的私钥公钥对,然后将它的公钥追加到其他机器的authorized_keys 文件中。

综上,若想装备集群服务器之间彼此能够ssh免密登录,能够有以下两种办法:(两种办法的本质是相同的,只不过履行的进程进程有少许不同)

办法一:一台一台服务器地依照第2步那样操作下去,直到一切机器都装备完结停止;

办法二:一切机器,包含master和slaveX,先分别用ssh-keygen -t rsa指令生成各自的私钥公钥对,接着用ssh-copy-id master指令将master和slaveX的公钥都追加到master的authorized_keys 文件中,当悉数追加结束之后,master的authorized_keys 文件中便已有集群中一切服务器(包含master自己和其他slave)的公钥信息了(可知此刻集群中一切机器都可免密ssh登录master了),它是一份完好的公钥信息文件,这个时分再用scp指令将master上的authorized_keys顺次发送到各个slave的~/.ssh/目录下(scp指令示例:scp ~/.ssh/authorized_keys  hadoop@node01:~/.ssh/)。如此,便使得整个集群彼此之间都能够免密ssh登录了。

--------------------------------------------------------------------------------

至于下面这一步,在网上查询材料时在单个博文中看到操作中有这步,我操作时没有装备这项,我不知道它对成果有什么影响,由于我没有做这步装备也使得ssh免密登录成功了。假如一定要装备的话,则是在第2步履行之前完结这项装备。

集群中的每台主机上

sudo vim /etc/ssh/sshd_config

敞开下面的选项

RSAAuthentication yes  //答应用RSA密钥进行身份验证

PubkeyAuthentication yes  //答应用公钥进行身份验证

AuthorizedKeysFile .ssh/authorized_keys  //本机保存的公钥的文件(这个比较重要)

一、配置yum和hosts文件

配置hosts文件:

命令:vi /etc/hosts

在文件尾部添加

192.168.1.106 linux1
192.168.1.107 linux2
192.168.1.108 linux3
192.168.1.109 linux4

二、什么是ssh

  • 管理员可以通过远程登陆的方式,对通过网相连的分散于各处的多台主机进行管理操作。

  • 管理员可以对远程主机进行如下操作:

    • 远程登陆

    • 远程命令执行

    • 远程文件传输

  • 遗憾的事情是:这些操作不安全!

  • 使用纯文本口令,并用明文发送

    • 信息可能会被截取,口令可能会被检索

    • 未经授权的人员使用截取的口令登陆系统而对系统造成危害

  SSH的目标

  • 在不安全的网络上提供安全的网络服务。

三、安装命令

  

  yum  install -y openssh-server openssh-clients

  启动ssh:

  service sshd start 或 /etc/init.d/sshd start

  配置开机启动:

  chkconfig --level 2345 sshd on

四、ssh免密登录

  ssh-keygen的命令手册,通过”man ssh-keygen“命令:

 

关于/etc/ssh/sshd_config文件,网上查询到的主张:『除非有必要,否则请不要更改 /etc/ssh/sshd_config 这个档案的设定值!』由于预设的情况下通常都是最紧密的 SSH 保护了,因而,能够不需求更动他!