如何通过ansible重置root密码



我们有需要ansible重置根密码的服务器。

我运行下面的命令来获取哈希密码并输入正确的根密码:

python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
Password:
Confirm:
$6$c/98MRPOs7JQ.pbw$XI7Qyz80d5ZV2DcgMk8limxB9DoTNsTCIZVYtLRTkM3a5T6NnHOgxEoRq/te4jIJhm114HuTXLv0dMf5H

然后,我在我的剧本中添加了生成的根密码:

tasks:
- name: Change user password
user: name=root update_password=always password=$6$c/98MRPOs7JQ.pbw$XI7Qyz80d5ZV2DcgMk8limxB9DoTNsTCIZVYtLRTkM3a5T6NnHOgxEoRq/te4jIJhm114HuTXLv0dMf5H

在没有错误的情况下运行了该剧本,然后尝试在服务器上使用实际的(非哈希加密的)根密码登录,但它不起作用,我做错了什么,如何修复?

您的哈希可能不正确。可能使用了不兼容的哈希算法
有多种方法可以生成该哈希:

解决方法:
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512', 'mysecretsalt') }}"

mkpasswd:
mkpasswd --method=sha-512

或者使用python:
python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"
您需要先安装passlib

最新更新