2017-10-12 5 views
0

Gibt es eine Möglichkeit, --private-key mit ansible-vault zu verschlüsseln und mit Ansible Playbook ansible-playbook (oder in Playbook) verschlüsselt zu verwenden?Encrypting Ansible Playbook .pem privater Schlüssel mit ansible-vault

Ich versuchte dies aber nicht funktioniert hat:

$ ansible-vault create encrypted_ssh_key.pem --vault-password-file vault_password_file 

(klebte meine privaten SSH-Schlüssel hinein)

$ ansible-playbook ansible_playbook -i inventory/ec2.py \ 
    -e ansible_ssh_user=ubuntu \ 
    -e ansible_user=ubuntu \ 
    --private-key=encrypted_ssh_key.pem \ 
    --vault-password-file vault_password_file 

Es fragt mich immer für ein Passwort und auch nachdem ich es eingeben (die von vault_password_file) akzeptiert es nicht. Mit diesem privaten Schlüssel kann ich mich problemlos in die EC2 Instanz einloggen.

+0

Haben Sie etwas dagegen zu erklären, was Sie erreichen wollen ? – techraf

+0

'ssh-keygen' verschlüsselt den privaten Schlüssel bereits. Es besteht keine Notwendigkeit, es mit 'ansible-vault' zu verschlüsseln. Verwenden Sie 'ssh-agent', anstatt das Passwort Ihres ssh-Schlüssels in eine Klartextdatei zu schreiben. – ceving

+0

Angenommen, Sie verwenden AWS EC2, das einen privaten Schlüssel für Sie generiert, und Sie möchten es mithilfe von ansible-vault verschlüsseln, da die gesamte spielbare Playbook-Datei verschlüsselt ist – Igor

Antwort

0

Es tut uns leid, aber Sie haben einen falschen Ansatz.

Was Sie brauchen, ist eine Passphrase für den Schlüssel zu erstellen, nicht den Schlüssel mit Ansible Vault zu verschlüsseln.

openssl rsa -in ssh_key.pem -out encrypted_ssh_key.pem 

ein Passwort Geben Sie ihm und dass Passwort zur Verfügung stellen jedes Mal, wenn Sie es laufen (oder ein Mittel verwendet werden, die das Passwort für Sie cachen würde):

ansible-playbook ansible_playbook -i inventory/ec2.py \ 
    -e ansible_ssh_user=ubuntu \ 
    -e ansible_user=ubuntu \ 
    --private-key=encrypted_ssh_key.pem