侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Linux集群内SSH免密码访问的快速配置方法

linux  /  管理员 发布于 7年前   186

日常无论测试环境还是生产环境,在进行多台服务器(集群)安装配置的时候,经常需要对集群内服务器SSH访问做免密码设置。比如Hadoop、HBase等集群的安装配置,或者多台服务器为便于后续运维也需要做SSH免密配置。

结合近期搭建测试环境的过程,对如何快速给多台服务器做相互SSH访问免密配置做一个说明。主要分为几个步骤:修改主机名称、配置汇聚服务器的秘钥、汇聚其他服务器秘钥、拷贝汇聚秘钥文件、生成know_hosts文件、拷贝know_hosts文件。
 

1、集群规划

主机IP

主机名称

10.141.93.101

dmz01

10.141.93.102

dmz02

10.141.93.103

inside01

10.141.93.104

inside02

10.141.93.105

inside03

10.141.93.106

inside04

10.141.93.107

inside05

10.141.93.108

inside06

10.141.93.109

inside07

10.141.93.110

inside08

10.141.93.111

inside09

10.141.93.112

inside10

10.141.93.113

inside11

10.141.93.114

inside12

10.141.93.115

inside13

10.141.93.116

inside14

10.141.93.117

inside15

10.141.93.118

inside16

该集群共有18台服务器,划分为DMZ区2台,INSIDE区16台。主要用于web服务器和应用服务器、数据库、缓存等。为了部署应用、管理集群服务器方便,将18台服务器做SSH互访免密码配置。
 

2、修改主机名称

无论初装系统或云主机,其主机名称“localhost”或“VM_75_173_centos”都不容易进行区分服务器作用。所以便于安装、部署、维护方便,会重新修改主机名称hostname。
修改主机名称可以使用下面命令:

hostnamectl set-hostname inside01

使用上述命令修改主机名称后重新ssh登陆,即可看到主机名称已经修改。

3、配置汇聚服务器秘钥

此处所谓汇聚服务器就是选定集群中的一台服务器,然后其他服务器与其做SSH免密码信任。本文选定dmz01(10.141.93.101)作为汇聚服务器。关系图如下所示:

其他服务器向dmz01做SSH登陆免密码信任配置。此处dmz01就是汇聚服务器。

配置汇聚服务器秘钥的命令如下所示:

[root@dmz01 ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key  (/root/.ssh/id_rsa): [Enter键]

Enter passphrase (empty for no  passphrase): [Enter键]

Enter same passphrase again: [Enter键]

Your identification has been saved in  /root/.ssh/id_rsa.

Your public key has been saved in  /root/.ssh/id_rsa.pub.

The key fingerprint is:

43:0d:08:18:ec:9e:d6:1f:ea:5f:04:30:0f:66:26:41  root@dmz01

The key's randomart image is:

+--[  RSA 2048]----+

|  oE+O. ..        |

|  o= =.   o       |

|  .    o . .      |

|  .     o         |

|  . o    S        |

|  + . .. .        |

|  .   o ..        |

|    . ..          |

|   ....           |

+------------------+

进入“/root/.ssh”目录,拷贝生成“authorized_keys”文件,使用命令如下:

cat id_rsa.pub >> authorized_keys

结果如下所示:

[root@inside01 .ssh]# ll
total 12
-rw-r--r-- 1 root root 395 Nov 12 16:25 authorized_keys
-rw------- 1 root root 1675 Nov 12 16:24 id_rsa
-rw-r--r-- 1 root root 395 Nov 12 16:24 id_rsa.pub

4、拷贝其他服务器秘钥

经过第3节配置汇聚服务器秘钥后,需要依次配置dmz02,inside01,…,inside16等17台服务器的秘钥。方法同第三节命令。
配置完成其他17台服务器的秘钥后,需要将该17台服务器的秘钥复制拷贝到汇聚服务器dmz01上。其拷贝命令如下:

[root@dmz01 .ssh]# ssh-copy-id -i dmz01
[root@inside01 .ssh]# ssh-copy-id -i dmz01

依次将17台的秘钥汇聚拷贝到dmz01上。

5、拷贝汇聚秘钥文件

从汇聚服务器将汇聚的秘钥文件依次拷贝到其他17台服务器的“/root/.ssh”目录下面,命令如下所示:

[root@dmz01 .ssh]# scp authorized_keys dmz02:/root/.ssh/
[root@dmz01 .ssh]# scp authorized_keys inside01:/root/.ssh/
…
[root@dmz01 .ssh]# scp authorized_keys inside16:/root/.ssh/
root@inside16's password:
authorized_keys 100% 7104 6.9KB/s 00:00

如上所示进行scp拷贝秘钥文件“authorized_keys”,该过程需要输入密码。
Ssh免密码验证:

[root@dmz01 .ssh]# ssh dmz02
The authenticity of host 'dmz02 (10.141.68.179)' can't be established.
ECDSA key fingerprint is 22:49:b2:5c:7c:8f:73:56:89:29:8a:bd:56:49:74:66.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dmz02,10.141.68.179' (ECDSA) to the list of known hosts.
Last login: Sat Nov 12 17:19:19 2016 from 10.141.93.186

由上面可以看出“ssh dmz02”,ssh登陆dmz02服务器时,没有再需要输入密码。但是提示需要将dmz02添加到dmz01的“know hosts”列表文件中。这样下次ssh访问dmz02就不会再提示需要加入know hosts列表了。
 

6、生成know_hosts文件

从汇聚服务器依次ssh其他17台服务器,经过前面的免密码设置。不需要再输入密码,但是都有加入know hosts列表的提示。
注意:为了把自己dmz01也加入到know hosts文件中,也需要“[root@dmz01.ssh]# ssh dmz01”一下。

最后生成的know_hosts文件内容如下所示:

查看know_hosts文件行数:

[root@dmz01 .ssh]# wc -l known_hosts
18 known_hosts

可以看出每个主机一行内容,表示dmz01知道了包括自己在内的所有18台服务器。
 

7、拷贝know_hosts文件

经过第六节生成18台服务器对dmz01的know host设置,将dmz01的/root/.ssh/know_hosts文件scp拷贝到其他17台服务器上。
ssh免密码登陆验证:

[root@dmz01 .ssh]# ssh inside10
Last login: Tue Nov 15 15:01:18 2016 from 10.141.93.186
[root@inside10 ~]# ssh inside15
Last login: Sat Nov 12 17:52:29 2016 from 10.141.93.186
[root@inside15 ~]# ssh dmz02
Last login: Sat Nov 12 20:05:59 2016 from 10.141.93.186
[root@dmz02 ~]# ssh dmz01
Last login: Thu Nov 17 23:56:05 2016 from 218.10.89.246
[root@dmz01 ~]# ssh inside15
Last login: Fri Nov 18 00:23:54 2016 from 10.141.114.152

ssh免密码登陆顺序:dmz01àinside10àinside15àdmz02àdmz01àinside15。
 

8、总结

本文主要涉及以下几个命令:

hostnamectl set-hostname inside01
ssh-keygen -t rsa
ssh-copy-id -i dmz01

这篇文章就介绍到这了,希望大家以后多多支持。


  • 上一条:
    分享20个 Unix/Linux 命令技巧
    下一条:
    Linux标准的文件系统知识分享(Ext2/Ext3/Ext4)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客