zoukankan      html  css  js  c++  java
  • puppet运维自动化之sshkey管理

    puppet运维自动化之sshkey管理

    九月 24, 2011 by sky · 3 Comments 

    【puppet sshkey 导读】

    ssh key,作为系统管理人员经常会使用ssh  连接远程服务器,创建相应的密钥,可以免去每次登录

    都要输入密码的痛苦。另外关闭相应的password认证,用ssh key来认证也可以提高ssh 安全。但有

    个问题,就是有N多台服务器,如何批量创建ssh key认证呢? 还是用shell的for循环? 其实这完全

    可以交给puppet来搞定。本章就为大家介绍运维自动化之ssh key管理。

    【puppet sshkey 基础】

    在介绍puppet 管理 ssh key之前, 我们简单回顾下面的问题

    1.什么是ssh?

    SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。

    2.ssh的工作机制

    SSH分为两部分:客户端部分和服务端部分,工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接互相建立。

    3.如何创建ssh 信任

    步骤如下:a. 本地生成密钥

    # ssh-keygen -t dsa  -C  ”test by sky”

    b.复制公钥到你想要的登录的机器(比如 IP为192.168.3.235)

    # scp .ssh/id_dsa.pub root@192.168.3.235:/root/.ssh/

    c. 登录到192.168.3.235,这时候还是需要输入密码的。

    # cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    #chmod 700  ~/.ssh
    #chmod 600 ~/.ssh/authorized_keys

    至此,就可以无密码登录。熟悉上面的后,我们就可以为大家详细讲解,如何用

    puppet来管理ssh key?

     

    【puppet  sshkey  概要】

    puppet ssh key是主要安装和管理SSH主机密钥。

    这种类型只知道如何安装到/ etc/ssh/ssh_known_hosts,它不能管理用户的授权密钥。

    【puppet ssh key 参数】

    alias

    别名,通俗的可以理解为小名,主机可能具有多个别名。如果有多个话可以用数组表示。

    ensure

    ssh key的基础属性,指定key是否生成,可以设置的值为present,absent。

    key

    生成 的密钥值,一般是十六进制数字的长字符串。

    name

    名称,主机名.

    provider

    经常不需要指定,puppet根据相应的操作系统选择相应的provider.

    parsed: 为ssh解析和生成已知的host文件。

    target:

    存储的SSH密钥文件的路径。

    type

    key生成的加密类型,通过是ssh-dsa,或者ssh-rsa,备注,dsa也可以用dss来表示。

    user

    指定是哪个用户的key

     

    【puppet sshkey 示例】

    假设,我创建好了一个用户名为sky的用户。由于他是SA,需要管理N台机器,为了方便无密码登录。

    代码示例:

    ssh_authorized_key { “hostname”:
    ensure => present,
    type => “ssh-dss”,
    key => “密钥值”,
    name => “hostname”,
    target => “/home/sky/.ssh/authorized_keys”,
    user   => ‘sky’,
    }

    【puppet sshkey  总结】

    上面的例子是有个问题的,就是如果每多执行一次的话,他都会把key追加写到/home/sky/.ssh/authorized_keys。

    puppet 非常强大,创建用户可以用puppet user来管理,本章最好结合用户,还有之前一篇管理虚拟资源结合起来。

    这样可以实现基础的用户管理,用户key管理等基础工作,再配合puppet package管理软件包。

    一步步朝运维自动化方向前进。

    补充:刚有同学在QQ群里问到,“就是如果每多执行一次的话,他都会把key追加写到/home/sky/.ssh/authorized_keys”

    有没有解决方法,其实这是sky不小心,在密钥值中写了说明“XXX== test1.test.com”,把test1.test.com这个说明给去掉

    就可以解决了。

  • 相关阅读:
    LeetCode 146
    Codeforces Round #644 (Div. 3) 题解
    AtCoder Grand Contest 044
    约数个数求解+约数求和(唯一分解定理)(遍历map的写法!)
    [蓝桥杯][2013年第四届真题]危险系数(DFS)
    Codeforces Round #674 (Div. 3)(A->D(前缀和出现次数))
    Codeforces Round #673 (Div. 2)B. Two Arrays(贪心)
    Codeforces Round #672 (Div. 2)(A->C2)(B位运算,C贪心,DP)
    质数笔记
    2020 CCPC
  • 原文地址:https://www.cnblogs.com/lexus/p/2508920.html
Copyright © 2011-2022 走看看