saltstack 之模块篇:states.ssh_auth

salt.states.ssh_auth

概述

经过 ssh_auth 状态模块来管理用户的SSH的信息受权密钥文件.若是使用 salt 配置仓库来托管公钥文件,除 user 项必须指定外,name,enc,comment 等属性不须要指定,source项指定的公钥文件须要遵循 authorized_keys 文件格式。ssh

功能

ssh_auth 模块文件 /usr/share/pyshared/salt/states/ssh_auth.py 有两个主要函数:函数

  • present :验证指定的SSH key 是否 存在 于用户的authorized_keys 文件中,若是 不存在 就将其添加进去;
  • absent :验证指定的SSH key 是否 不存在 于用户的authorized_keys 文件中,若是 存在 就将其删除;

实现

salt.states.ssh_auth 经过调用 salt.modules.ssh 来实现对SSH公钥的管理。对象

实例

  • 配置文件: /srv/salt/ssh.sls
  • 托管的Key: /srv/salt/ssh_keys/panht.id_rsa.pub
  • 要移除的Key: AAAAB3NzaC1yc2EAAAADAQABAAABAQDZlhE2EQM0sw902j/rlc1+uSKgaJsvQH16e6WEMoWz4ieGkeY+DhQSw8UAhDRT6ekaHh6Na1DWNhbDeOaqC++v2ZXxy2hjLeGYQkGs0MotlBTPGG2Od3JHju20ENjxUuLMfF/U0/cqpF3p0eCnn8jKuqk2AuKAlvJQTIqbsYiUjl3z51lUzOic3wdEitvKBV5mNCMIM/uu1FqC4Zz6QpJIOF+Se3l9JI3+nNyquPVBy0VFhwfTKwN7s906YtyB0XKTdlVJKdtjhzyvINJR2W0WSH/vkxeGeuBgamjZ0k7u1jjXxz9E1zzmN/cWnBK2BDEvY6PbwTqc9C/sK4cZFjOr

<pre> panht: ssh_auth: - present - user: root - source: salt://ssh_keys/panht.id_rsa.pub removed: ssh_auth: - present - user: root - name: AAAAB3NzaC1yc2EAAAADAQABAAABAQDZlhE2EQM0sw902j/rlc1+uSKgaJsvQH16e6WEMoWz4ieGkeY+DhQSw8UAhDRT6ekaHh6Na1DWNhbDeOaqC++v2ZXxy2hjLeGYQkGs0MotlBTPGG2Od3JHju20ENjxUuLMfF/U0/cqpF3p0eCnn8jKuqk2AuKAlvJQTIqbsYiUjl3z51lUzOic3wdEitvKBV5mNCMIM/uu1FqC4Zz6QpJIOF+Se3l9JI3+nNyquPVBy0VFhwfTKwN7s906YtyB0XKTdlVJKdtjhzyvINJR2W0WSH/vkxeGeuBgamjZ0k7u1jjXxz9E1zzmN/cWnBK2BDEvY6PbwTqc9C/sK4cZFjOr </pre>rem

验证:<pre>salt '*' state.highstate</pre>it

通过验证,能够管理要添加的KEY,要移除的KEY,存在于authorized_keys中,既不属于要添加的KEY,也不属于要移除的KEY 这两个已定义列表以外的KEY ssh_auth 模块不会处理。io

参考

  • salt.states.ssh_auth.absent(name, user, enc='ssh-rsa', comment='', options=None, config='.ssh/authorized_keys')

<pre> 验证指定的SSH key 是否不存在 name 要管理的 SSH 公钥 user 要修改的 SSH authorized keys 文件的用户 enc 定义证书的类型,能够是 ecdsa, ssh-rsa 或 ssh-dss comment SSH 公钥证书的注释 options 可选选项,能够经过一个列表对象来传递参数, config 用户主目录中 authorized_keys 的存放位置 , 默认是 ".ssh/authorized_keys" </pre>module

  • salt.states.ssh_auth.present(name, user, enc='ssh-rsa', comment='', source='', options=None, config='.ssh/authorized_keys* ', **kwargs)

<pre> 验证指定SSH key 是否存在指定用户的 authorized_keys 文件中 name 要管理的 SSH 公钥 user 要修改的 SSH authorized keys 文件的用户 enc 定义证书的类型,能够是 ecdsa, ssh-rsa 或 ssh-dss comment SSH 公钥证书的注释 source 公钥文件的文件,文件应该严格遵循"authorized_keys"格式,若是 comment, enc, 和 options 这些属性值被已经设置,那么就会被忽略。source项指定的公钥文件须要遵循 authorized_keys 文件格式。 options 可选选项,能够经过一个列表对象来传递参数, config 用户主目录中 authorized_keys 的存放位置 , 默认是 ".ssh/authorized_keys" </pre>配置

相关文章
相关标签/搜索