puppet运维自动化之sshkey管理

摘要:
此外,关闭相应的密码身份验证并使用sshkey进行身份验证也可以提高ssh安全性。本章介绍运维自动化的sshkey管理。在介绍puppet中sshkey的管理之前,让我们简要回顾一下以下问题:1.什么是ssh?熟悉以上内容后,我们可以详细解释如何使用puppet管理sshkey?puppetsshkey主要用于安装和管理SSH主机密钥。别名(可以理解为昵称)在主机上可能有多个别名。用户指定哪个用户的密钥。假设我创建了一个用户名为sky的用户。
You are here:Home/puppet中文自动化管理/ puppet运维自动化之sshkey管理
puppet运维自动化之sshkey管理

九月 24, 2011bysky·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这个说明给去掉

就可以解决了。

免责声明:文章转载自《puppet运维自动化之sshkey管理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DTD与模式完美日记:实现高弹性高稳定电商架构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】Git详解之四 服务器上的Git

服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好...

【转】各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO(pure old java object) 是普通java类,有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。我看到这个定义,心里就有个疑问了,这个POJO跟JavaBean的定义怎么就这么像?两者有什么区别?POJO其实是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一...

48 git使用

0 引言git/github是当前最好的代码版本管理和协同工作工具。最近我终于用上了这一先进工具,撒花撒花! # 先把大神廖雪峰的链接献上https://www.liaoxuefeng.com/wiki/896043488029600# 官方教程https://git-scm.com/ 1 配置git使用环境git的使用环境主要包括git的安装、设置SSH...

sftp 常用命令 以及 以及与 scp 的比较

1.scp 不能容忍网络闪断,因此一旦出现网络闪断,那么scp 命令就会异常退出    sftp 可以容忍网络闪断,而且具备断电续传,因此sftp 适用于网络更慢的环境, 2. sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。 举例...

PHP代码审计笔记--任意文件下载漏洞

  在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件。 0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方。 漏洞示例代码: 1. <?php 2. $filename = $_GET['filename']; 3. echo f...

Centos7 远程登录端口22 设置

第一步 #查看本机是否安装SSH软件包 [root@localhost ~]# rpm -qa | grep ssh openssh-server-6.6.1p1-12.el7_1.x86_64 openssh-clients-6.6.1p1-12.el7_1.x86_64 libssh2-1.4.3-8.el7.x86_64 openssh-6.6.1p...