Как запомнить / кэшировать или указать парольную фразу закрытого ключа для 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 ... скудны. Полагаю, я упускаю что-то очевидное.

4
задан 19 February 2016 в 19:05
1 ответ

Функция называется 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 может найти введите агента и авторизуйтесь, не запрашивая каждый раз кодовую фразу. От: Документация: Ваши первые команды

6
ответ дан 3 December 2019 в 03:05

Теги

Похожие вопросы