一、产生背景

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

二、配置实例

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

[root@test ~]# cd /root/.ssh/
[root@test .ssh]# ll
总用量 4
-rw-r--r--. 1 root root 396 11月  1 2016 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 2048]----+
|   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
总用量 12
-rw-------. 1 root root 1679 11月  2 11:43 id_rsa
-rw-r--r--. 1 root root  391 11月  2 11:43 id_rsa.pub
-rw-r--r--. 1 root root  396 11月  1 2016 known_hosts

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

[root@test .ssh]# touch authorized_keys
[root@test .ssh]# chmod 600 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 600 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 1 #!/usr/bin/expect -f2 #3 set timeout 34 set ip_list [open /home/jiayimeng/bin/ip r]5 while { [gets $ip_list line ]>=0 } {6     set ip [lindex $line 0]7     spawn ssh root@$ip8     expect "*yes/no:" { send "yes\r" }9     expect "*password:" { send "123456\r" }10     expect "#"11     send "cat /root/.ssh/id_rsa.pub | ssh root@192.168.3.25 'cat     >> .ssh/authorized_keys'\r"12     expect "*password:" { send "123456\r" }13     expect "#" { send "exit\r"}14     interact15 }ip中写明所有机器的ip地址

except

四、总结

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

转载于:https://www.cnblogs.com/jym1/p/8073009.html

linux ssh认证(公钥机)配置相关推荐

  1. Linux | ssh服务原理、配置及操作

    目录 ssh服务 ssh服务的配置文件 配置文件常用配置详解: 加密方法 登陆验证原理 实现公钥认证,免密码登录的步骤 公钥认证排错 ssh登录方法 客户端配置 ssh服务 ssh是什么? ssh - ...

  2. linux ssh互免密配置

    一.产生背景 在实际工作中,linux集群需要自动化的管理,市面上较常见的自动化运维工具诸如ansible,puppet,saltstack:轻量级的有pssh系列,这其中大多数工具使用的前提就是集群 ...

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

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

  4. 代码管理git生成ssh key (公钥私钥)配置GitLab

    git生成ssh key 配置GitLab git在我们日常项目管理中起了很大的作用,是我们能够更好地管理我们的代码,git的管理是基于ssh密钥进行的,所以在使用前我们需要进行ssh配置. 首先我们 ...

  5. Linux SSH与SCP的配置

    目录 配置SSH协议 配置服务器通过密钥进行认证 配置SCP完成文件传输 ssh协议讲解 SSH协议理论讲解_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_498 ...

  6. Linux SSH无交互式访问配置

    环境准备两台Linux服务器: 准备一台SSH服务端(系统环境centos6.5,ip地址192.168.100.100) 准备一台SSH客户端(系统环境centos6.5,ip地址192.168.1 ...

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

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

  8. Linux SSH使用公钥私钥实现免登陆 以及 登陆失败、公钥失效的处理转

    =====================同级参考资料: <linux--私钥登陆>http://mengsir.blog.51cto.com/2992083/908342 写shell免 ...

  9. 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

    目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 ...

最新文章

  1. 几行代码实现老照片上色复原!
  2. 习题4-3 求分数序列前N项和 (15 分)
  3. Ubuntu 安装 Redis (非源码Build方式)
  4. hMailServer邮件服务器之安装
  5. log4cpp乱码_log4cxx配置使用(一)
  6. java执行Sql脚本
  7. ZTE10机顶盒中心服务器,中兴机顶盒现场配置工具ZTE_STB_Tools_V1.1.0_T07.01最新版
  8. U1C3 介绍SketchEngine和Web语料库研究
  9. Linux中使用 if 、for、while等循环来写脚本
  10. nodejs服务器部署unexpected token{
  11. Kaggle泰坦尼克号提升准确率探索
  12. c语言中calloc是什么意思,calloc(c语言calloc是什么意思)
  13. jquery 源码分析系列1
  14. 个人开发者做一款Android App,android如何开发一款赚钱app
  15. 搭建一个简单的SDN网络环境
  16. 电竞英雄联盟数据API接口 - 【英雄联赛统计】API调用示例代码
  17. raspberry pi Pico使用MicroPython变砖后的解决方法
  18. Opengl红宝书第一个例子_VS2017_glew2.1_x64_记录成功的代码段
  19. 2.3 黑群晖驱动:开启nvme缓存、将nvme缓存作为存储盘 教程
  20. 小程序 小程序跳转公众号页面

热门文章

  1. 关于模型复杂度的一个想法
  2. CSS3 background-image背景图片相关介绍
  3. JQuery面试题1
  4. Azure Bill
  5. hibernate一级缓存和二级缓存的区别[转]
  6. Inserting/Removing shutters and filters
  7. 怎么实现Web系统URL传输(表单提交)参数加密-zhuan
  8. P5357 【模板】AC自动机(二次加强版)
  9. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...
  10. 【转】Eclipse下编写C++程序——CDT环境搭建