• linux ssh认证(公钥机)配置


    一、产生背景

        在实际工作中,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 -f
      2 #
      3 set timeout 3
      4 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@$ip
      8     expect "*yes/no:" { send "yes
    " }
      9     expect "*password:" { send "123456
    " }
     10     expect "#"
     11     send "cat /root/.ssh/id_rsa.pub | ssh root@192.168.3.25 'cat     >> .ssh/authorized_keys'
    "
     12     expect "*password:" { send "123456
    " }
     13     expect "#" { send "exit
    "}
     14     interact
     15 }
      
     ip中写明所有机器的ip地址
    except
     

    四、总结

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

  • 相关阅读:
    天使玩偶
    CSPS 2019 Day1 T2 括号树
    权值线段树2(求逆序对)
    第一篇blog
    [GXOI/GZOI2019]特技飞行
    Mokia 摩基亚
    概率基本概念
    第一课:认识Richfaces
    第四课:JSF\Richfaces中使用javabean
    第二课:安装Richfaces Demo
  • 原文地址:https://www.cnblogs.com/jym1/p/8073009.html
Copyright © 2020-2023  润新知