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>配置

相關文章
相關標籤/搜索