经过 ssh_auth 状态模块来管理用户的SSH的信息受权密钥文件.若是使用 salt 配置仓库来托管公钥文件,除 user 项必须指定外,name,enc,comment 等属性不须要指定,source项指定的公钥文件须要遵循 authorized_keys 文件格式。ssh
ssh_auth 模块文件 /usr/share/pyshared/salt/states/ssh_auth.py 有两个主要函数:函数
salt.states.ssh_auth 经过调用 salt.modules.ssh 来实现对SSH公钥的管理。对象
<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
<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
<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>配置