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