Назад | Перейти на главную страницу

Как запомнить / кэшировать или указать парольную фразу закрытого ключа для Ansible

Только начав с Ansible, я установил пользователя Asible на клиентской машине и создал набор ключей из OpenSSL. Я использую Ansible под своей учетной записью. Я указал файл пользователя и закрытого ключа в конфигурации Ansible. Я хочу, чтобы удаленные команды выполнялись от имени этого пользователя, а этот пользователь - от имени sudo для выполнения команд, требующих повышения прав.

/etc/ansible/ansible.cfg

private_key_file = /etc/ansible/pka/confman.crt
remote_user = confman

Такие команды, как эта, не запрашивают парольную фразу после первоначального ввода парольной фразы:

ansible all -m ping

Следующая подсказка для ключевой фразы каждый раз, когда я их запускаю:

ansible all -m ping -b
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -m ping --sudo
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -a "cat /etc/redhat-release"
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

Зачем?

Есть ли способ установить кодовую фразу? Есть ли более безопасный способ? Я планирую запускать ansible удаленно, через cron и другие инструменты автоматизации, где ввод пароля невозможен.

Что касается контекста, мне никогда не нужно было использовать SSH между серверами Linux, всегда с машины Windows с использованием таких инструментов, как putty, RoyalTS и mRemoteNG, поэтому мои знания ssh ... скудны. Полагаю, мне не хватает чего-то очевидного.

Функция называется ssh-agent:

$ eval `ssh-agent`  # you might have agent already running so this might not be needed
$ ssh-add /etc/ansible/private_keys/confman.crt

теперь ansible должен иметь возможность найти ключ в агенте и пройти аутентификацию, не запрашивая каждый раз кодовую фразу. От: Документация: Ваши первые команды