Короче ,
ssh-agent будет аутентифицировать парольную фразу, когда я ssh на удаленный сервер из командной строки, но всякий раз, когда я запускаю ANSIBLE PlayBook, он запрашивает парольную фразу. У меня вопрос, , почему ssh-agent не аутентифицирует парольную фразу для Ansible? Как мне заставить его работать?
Подробно ,
Я создал защищенный паролем закрытый ключ и соответствующий открытый ключ и загрузил открытый ключ на сервер.
Я вызвал ssh-agent, используя eval $(ssh-agent)
, а затем ssh-add /etc/ansible/ssh/private-key.pem
Ввод ssh-agent -l
показывает, что ключ был добавлен.
Я могу успешно войти в систему из командной строки, используя ssh username@ipaddress
, без запроса пароля.
но если я выполню пьесу или сделаю что-то вроде sudo ansible -m ping server
, он скажет
Введите ключевую фразу для ключа '/etc/ansible/ssh/private-key.pem':
Я попытался еще раз в подробном режиме, и он дает мне следующую информацию
ansible 2.4.2.0
файл конфигурации = /etc/ansible/ansible.cfg настроен
Путь поиска модуля = [u '/ etc / ansible / library']
модуль ANSIBLE питона
location = /usr/lib/python2.7/dist-packages/ansible
исполнимый
location = / usr / bin / ansible
версия Python = 2.7.12 (по умолчанию, 20 ноября
2017, 18:23:56) [GCC 5.4.0 20160609] Использование /etc/ansible/ansible.cfg в качестве
Конфигурационный файл Разобранный файл инвентаризации / etc / ansible / hosts с плагином ini
META: run обработчики с использованием файла модуля
/usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
<35.230.127.195> УСТАНОВИТЬ СОЕДИНЕНИЕ SSH ДЛЯ ПОЛЬЗОВАТЕЛЯ: user6
<35.230.127.195> SSH: EXEC ssh -C -o ControlMaster = auto -o
ControlPersist = 60 с -o StrictHostKeyChecking = нет -o порт = 22 -o
'IdentityFile = "/ etc / ansible / ssh / private-key.pem"' -o
KbdInteractiveAuthentication = нет -o
PreferredAuthentications = GSSAPI-с-микрофоном, GSSAPI-keyex, hostbased, PublicKey
-o PasswordAuthentication = нет -o пользователь = пользователь6 -o ConnectTimeout = 10 -o ControlPath = / home / user6 / .ansible / cp / e26536be01 35.230.127.195 '/ bin / sh
-c '"'" 'echo ~ && sleep 0' "'"' 'Введите ключевую фразу для ключа' /etc/ansible/ssh/private-key.pem':
Мое окружение
- Ansible версия: 2.4.2.0
- Python версия 2.7.12
- OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g
- Ключи SSH были созданы с использованием RSA (не SSH-1 RSA)
и 4096 бит.
- В ansible.cfg транспорт настроен на smart.
- Ключ шифруется с использованием ansible-vault, но я пытался это сделать
без шифрования и без разницы.
Пожалуйста, помогите, у меня осталось немного волос.
ОБНОВЛЕНИЕ: Использование transport = local
выполняет все локально (т. Е. Не выполняет ANSIBLE PlayBook на удаленном сервере (даже если выглядит так)).