As vezes queremos gerar uma senha fixa para usuários, a qual vamos reutilizar em várias máquinas.
Um exemplo típico é criar usuário administrador, capaz de realizar login com senha. Dessa forma, caso ocorra algum problema com o servidor SSH ou perca a sua chave privada junto com o seu HD, ainda é possível fazer login direto na máquina, por VNC ou por outros meios de acesso remoto.
Porém essa é a senha de administrador de muitos computadores e não queremos colocá-la diretamente em scripts de configuração, como os do Ansible, onde podem ser lidas diretamente.
Podemos, no entanto, criar uma versão encriptada da senha (a mesma usada no arquivo /etc/shadow) e aí sim colocá-la no script.
O código abaixo cria uma senha segura 24 caracteres utilizando
pwgen
. A opção -s
indica que a senha deve ser completamente
aleatória.
$ pwgen -s 24 1
> VONga6jUFoXCMQNhDlHgTHQY
Por fim usamos openssl passwd
para encriptar a senha gerada
Usamos a opção -6
para criptografar a senha com SHA512.
$ openssl passwd -6 'VONga6jUFoXCMQNhDlHgTHQY'
> $6$80Ll7KOwC/XDQVgZ$NwTjYG8cXcMTr9NI1EbtaX7OEAIBq3ULUSJPmpjtk/vUiyB9duYO3aNqmWmBnS.mjgaN37/mo34R8COzNrFBh0
Dessa forma, a preciosa senha está segura, longe de olhos curiosos, e podemos colocá-la no script de criação de usuários.
# Arquivo: tasks/default-tasks.yml
---
- name: Criar usuário admin com senha
ansible.builtin.user:
name: admin
comment: Usuário Administrador
password: "$6$80Ll7KOwC/XDQVgZ$NwTjYG8cXcMTr9NI1EbtaX7OEAIBq3ULUSJPmpjtk/vUiyB9duYO3aNqmWmBnS.mjgaN37/mo34R8COzNrFBh0"