设为首页 收藏本站
查看: 1295|回复: 0

[经验分享] puppet运维自动化之ssh key

[复制链接]
YunVN网友  发表于 2018-8-2 09:25:29 |阅读模式
puppet运维自动化之ssh key
  ssh key,作为系统管理人员经常会使用ssh连接远程服务器,创建相应的密钥,可以免去每次登录都要输入密码的痛苦。另外关闭相应的password认证,用ssh key来认证也可以提高ssh 安全。但有个问题,就是有N多台服务器,如何批量创建ssh key认证呢? 还是用shell的for循环? 其实这完全可以交给puppet来搞定。本章就为大家介绍运维自动化之ssh key管理。
  【puppetsshkey导读】
  sshkey,作为系统管理人员经常会使用ssh连接远程服务器,创建相应的密钥,可以免去每次登录都要输入密码的痛苦。另外关闭相应的password认证,用sshkey来认证也可以提高ssh安全。但有个问题,就是有N多台服务器,如何批量创建sshkey认证呢?还是用shell的for循环?其实这完全可以交给puppet来搞定。本章就为大家介绍运维自动化之sshkey管理。
  【puppetsshkey基础】
  在介绍puppet管理sshkey之前,我们简单回顾下面的问题:
  1.什么是ssh?
  SSH为SecureShell的缩写,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH为建立在应用层和传输层基础上的安全协议。
  2.ssh的工作机制
  SSH分为两部分:客户端部分和服务端部分,工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接互相建立。
  3.如何创建ssh信任
  步骤如下:a.本地生成密钥
#ssh-keygen-tdsa-C”testbysky”  b.复制公钥到你想要的登录的机器(比如IP为192.168.3.235)
#scp.ssh/id_dsa.pubroot@192.168.3.235:/root/.ssh/  c.登录到192.168.3.235,这时候还是需要输入密码的。
#cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys  
#chmod700~/.ssh
  
#chmod600~/.ssh/authorized_keys
  至此,就可以无密码登录。熟悉上面的后,我们就可以为大家详细讲解,如何用puppet来管理sshkey?
  【puppetsshkey概要】
  puppetsshkey是主要安装和管理SSH主机密钥。
  这种类型只知道如何安装到/etc/ssh/ssh_known_hosts,它不能管理用户的授权密钥。
  【puppetsshkey参数】
  alias:别名,通俗的可以理解为小名,主机可能具有多个别名。如果有多个话可以用数组表示。
  ensure:sshkey的基础属性,指定key是否生成,可以设置的值为present,absent。
  key:生成的密钥值,一般是十六进制数字的长字符串。
  name:名称,主机名。
  provider:经常不需要指定,puppet根据相应的操作系统选择相应的provider.
  parsed:为ssh解析和生成已知的host文件。
  target:存储的SSH密钥文件的路径。
  type:key生成的加密类型,通过是ssh-dsa,或者ssh-rsa,备注,dsa也可以用dss来表示。
  user:指定是哪个用户的key。
  【puppetsshkey示例】
  假设,我创建好了一个用户名为sky的用户。由于他是SA,需要管理N台机器,为了方便无密码登录。
  代码示例:
ssh_authorized_key{“hostname”:  
ensure=>present,
  
type=>“ssh-dss”,
  
key=>“密钥值”,
  
name=>“hostname”,
  
target=>“/home/sky/.ssh/authorized_keys”,
  
user=>‘sky’,
  
}
  【puppetsshkey总结】
  上面的例子是有个问题的,就是如果每多执行一次的话,他都会把key追加写到/home/sky/.ssh/authorized_keys。
  puppet非常强大,创建用户可以用puppetuser来管理,本章最好结合用户。这样可以实现基础的用户管理,用户key管理等基础工作,再配合puppetpackage管理软件包。一步步朝运维自动化方向前进。
  补充:刚有同学在QQ群里问到,“就是如果每多执行一次的话,他都会把key追加写到/home/sky/.ssh/authorized_keys”
  有没有解决方法,其实这是sky不小心,在密钥值中写了说明“XXX==test1.test.com”,把test1.test.com这个说明给去掉就可以解决了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545119-1-1.html 上篇帖子: puppet运维自动化之schedule管理 下篇帖子: puppet运维自动化之puppet模块示例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表