一、产生背景

在实际工作中,linux集群需要自动化的管理,市面上较常见的自动化运维工具诸如ansible,puppet,saltstack;轻量级的有pssh系列,这其中大多数工具使用的前提就是集群配置有公钥机可免密ssh登录集群内所有服务器,所以要先配置一台公钥机使用。

二、配置实例

1、在除公钥机外所以服务器生成密钥

[root@test ~]# cd /root/.ssh/
[root@test .ssh]# ll
总用量
-rw-r--r--. root root 11月 known_hosts
[root@test .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:
SHA256:cBjbvfy9VkWLQpJESgqLHeq923mm4EF1Vb1L4wGs0IU root@test
The key's randomart image is:
+---[RSA ]----+
| o ..++*o. |
| + + o*oE + . .|
| o o o+o+ = . o..|
|. . . .o o o * ..|
| . o S o + + .|
| . . . + .|
| + . .. |
| . = .o .. |
| o ++ .. |
+----[SHA256]-----+
[root@test .ssh]#
[root@test .ssh]# ll
总用量
-rw-------. root root 11月 : id_rsa
-rw-r--r--. root root 11月 : id_rsa.pub
-rw-r--r--. root root 11月 known_hosts
 

2、在第一台服务器上创建authorized_keys文件,并修改权限,用以保存所有服务器的公钥

[root@test .ssh]# touch authorized_keys
[root@test .ssh]# chmod authorized_keys
[root@test .ssh]# cat id_rsa.pub >> authorized_keys
 

3、将authorized_keys文件复制到下一台服务器,并重复以上两个步骤

[root@test .ssh]# scp authorized_keys root@192.168.0.11:~/.ssh/
 

4、重复以上步骤,直至最后一台服务器,将authorized_keys文件复制到公钥机对应目录下

 
[root@test .ssh]# scp authorized_keys root@192.168.0.1:~/.ssh/
[root@test .ssh]# chmod authorized_keys

5、配置自动化运维工具配置文件,并删除除公钥机外的所有机器中的authorized_keys文件(pssh为例)

 
[root@test ~]# pssh -h serverlist.txt -P -p1 "rm -rf /root/.ssh/authorized_keys"

6、测试公钥机免密ssh登录其他服务器即可

三、脚本实现

[root@Nginx bin]# yum install expect -y
[root@Nginx bin]# find / -name expect
/usr/bin/expect
[root@Nginx bin]# touch /root/.ssh/authorized_keys
[root@Nginx bin]# vim self_ssh.sh
#!/usr/bin/expect -f
#
set timeout
set ip_list [open /home/jiayimeng/bin/ip r]
while { [gets $ip_list line ]>= } {
set ip [lindex $line ]
spawn ssh root@$ip
expect "*yes/no:" { send "yes\r" }
expect "*password:" { send "123456\r" }
expect "#"
send "cat /root/.ssh/id_rsa.pub | ssh root@192.168.3.25 'cat >> .ssh/authorized_keys'\r"
expect "*password:" { send "123456\r" }
expect "#" { send "exit\r"}
interact
} ip中写明所有机器的ip地址

except

 

四、总结

在不连接外部互联网的特定集群中,公钥机的使用大大方便了运维人员管理维护集群,系统集成人员集成施工的一系列操作;同时,由于公钥机的特殊,要做好公钥机的安全工作。

linux ssh认证(公钥机)配置的更多相关文章

  1. mac/linux ssh 免密码登陆配置及错误处理

    先说一下,mac 和linux 的设置方法是一样的 一般做法可以参照http://www.tuicool.com/articles/i6nyei 第一步:生成密钥.在终端下执行命令: ssh-kege ...

  2. Linux SSH使用公钥私钥实现免登陆

    公钥和私钥(我是文盲,钥字之前都是读yao,这是多音字这里应该念yue),是成对出现的,一旦任何一个做了更改都会验证失败. 1.免登陆的实现:   使用下例中ssky-keygen和ssh-copy- ...

  3. ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  4. linux ssh的安装与配置以及实现密钥登录

    安装ssh服务器: yum install openssh ssh 配置文件位于/etc/ssh/sshd_config 如果需要允许root用户远程登录,那么vi /etc/ssh/sshd_con ...

  5. linux ssh利用公钥免密登陆

    1.安装检查ssh 如果没有ssh的话,需要安装 #yum  install -y openssh-server openssh-clients 2.生成秘钥 ssh-keygen -t rsa 执行 ...

  6. linux相关认证和权限配置

    [root@rsync-server-1 /]# echo 'rsync_backup:redhat' > /etc/rsync.password [root@rsync-server-1 /] ...

  7. linux ssh公钥免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 一.SSH公钥登录原理 在平时工作中我们经常要远程登录服务器,这就要用到SSH ...

  8. linux信任公钥的配置

    一.每个用户都有自己的家目录 访问方式是:~/.ssh/id_rsa.pub 使用~就是表示家目录. 具体家目录在哪里,在用户密码配置文件中:/etc/passwd中.第6列的值就是. 可以使用~访问 ...

  9. (转)Linux SSH配置和禁止Root远程登陆设置

    原文 一.修改vi /etc/ssh/sshd_config 文件 1.修改默认端口:默认Port为22,并且已经注释掉了:修改是把注释去掉,并修改成其它的端口. 2.禁止root用户远程登陆:修改P ...

随机推荐

  1. 2017 Multi-University Training Contest - Team 4——HDU6069&&Counting Divisors

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6069 题目意思:首先解释一下d[n]这个函数表示n有多少个因子,百度一下可以知道这个函数是一个非完全积 ...

  2. PCRE library

    wget http://nginx.org/download/nginx-1.15.6.tar.gz tar -xvf nginx-1.15.6.tar.gz ln -s nginx-1.15.6 n ...

  3. HTTP Headers Client Identification

    用户信息通过HTTP头部承载:不能实现用户唯一性标识. w HTTP The Definitive Guide Table 11-1 shows the seven HTTP request head ...

  4. Storm-源码分析-Stats (backtype.storm.stats)

    会发现, 现在storm里面有两套metrics系统, metrics framework和stats framework 并且在所有地方都是同时注册两套, 貌似准备用metrics来替代stats, ...

  5. Storm-源码分析-Topology Submit-Task-TopologyContext (backtype.storm.task)

    1. GeneralTopologyContext 记录了Topology的基本信息, 包含StormTopology, StormConf 已经从他们推导出的, task和component, co ...

  6. GNU Screen使用入门

    前些天开始学习使用GNU Screen程序,发现这个工具在管理服务器时候确实挺方便的,于是写一篇文章总结一下,顺便介绍Screen的基本使用方法. 简介 GNU Screen是 一个基于文本的全屏窗口 ...

  7. 二进制x&(x-1);

    求下面函数的返回值(微软) int func(x) {     int countx = 0;     while(x)     {           countx ++;           x ...

  8. Linux系统下RPM命令和yum的使用

    Linux系统下RPM命令和yum的使用 RPM:Redhat Packages Manager (红帽系列软件包的管理),主要用于安装.卸载.升级和管理软件. 一个包由下面几个部分构成: 例如:ht ...

  9. php.ini优化,,,php-fpm

    无论是apache还是nginx,php.ini都是合适的.而php-fpm.conf适合nginx+fcgi的配置. 1)打开PHP的安全模式 PHP的安全模式是个非常重要的PHP内嵌的安全机制,能 ...

  10. Get a better look at the 2014 Nike Hyperrev

    There's a couple of Nike Hyperrev For Sale Delay climax frames lead that will list for this calendar ...