Почему ssh-agent не аутентифицирует парольную фразу закрытого ключа, когда я использую Ansible? - PullRequest
0 голосов
/ 04 мая 2018

Короче ,

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 на удаленном сервере (даже если выглядит так)).

1 Ответ

0 голосов
/ 04 мая 2018

Перейти к файлу ansible.cfg в расположении ниже:

/ и т.д. / анзибль / ansible.cfg

И установить транспортный = местный:

transport = local

Спасибо

...