【发布时间】:2017-02-04 23:14:54
【问题描述】:
是否可以将ansible_become_pass 的 SHA 值存储在保险库中,而不是纯文本版本?
我的主要用例是我已经拥有设置 sudo 用户所需的 SHA 值,我想使用相同的 SHA 值来设置 ansible_become_pass。到目前为止ansible_become_pass 似乎只接受纯文本密码。
这将避免在保管库中以两种不同的方式指定相同密码的小麻烦。
【问题讨论】:
是否可以将ansible_become_pass 的 SHA 值存储在保险库中,而不是纯文本版本?
我的主要用例是我已经拥有设置 sudo 用户所需的 SHA 值,我想使用相同的 SHA 值来设置 ansible_become_pass。到目前为止ansible_become_pass 似乎只接受纯文本密码。
这将避免在保管库中以两种不同的方式指定相同密码的小麻烦。
【问题讨论】:
是否可以将 ansible_become_pass 的 SHA 值存储在 Vault 中,而不是纯文本版本?
不!当然不能。
ansible_become_pass 是 Ansible 提供给目标操作系统的密码,用于验证要代表另一个用户使用 sudo 执行的操作。
您不能通过提供密码哈希而不是使用密码来登录任何系统。
使用散列(单向函数)的全部意义在于,即使它被泄露,它也不能用于身份验证(密码检索)。
[ ] 避免在保管库中以两种不同的方式指定相同的密码。
您可以使用password_hash filter 获取密码的哈希值,您不需要将哈希值与纯文本密码一起存储。
---
- hosts: localhost
gather_facts: no
connection: local
vars:
plain_text_password: secret
tasks:
- debug:
msg: "{{ plain_text_password | password_hash }}"
- debug:
msg: "{{ plain_text_password | password_hash('sha256') }}"
【讨论】: