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

Ansible: не удалось подключиться к хосту через ssh

Кто-нибудь знает, почему это не работает?

Я использую Ansible на Cygwin, используя скомпилированную версию sshpass. Я следовал инструкциям на http://www.jeffgeerling.com/blog/running-ansible-within-windows для его настройки. Вот мой файл / etc / ansible / hosts:

10.240.227.56 ansible_ssh_pass='password' ansible_user='domain\userid'
10.240.227.59 ansible_ssh_pass='password' ansible_user='domain\userid' ansible_become=true ansible_become_method=sudo ansible_become_user=privilegeduser

Я пробовал это с двумя разными хостами и двумя разными конфигурациями, чтобы посмотреть, могу ли я сузить проблему, но они ведут себя одинаково. Вот что я получаю, когда пытаюсь пропинговать хосты:

$ ansible all -vvv -m ping
No config file found; using defaults
<10.240.227.56> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.59> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.56> SSH: EXEC sshpass -d48 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.56 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" )'"'"''
<10.240.227.59> SSH: EXEC sshpass -d49 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.59 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" && echo "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" )'"'"''
10.240.227.59 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
10.240.227.56 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

Удаленная сторона - это виртуальная машина RHEL 7, использующая проверку подлинности Windows, отсюда и имя пользователя «домен \ идентификатор пользователя».

Я могу нормально подключиться, используя те же учетные данные в командной строке, используя простой старый ssh. Я также могу нормально подключиться, используя sshpass. И когда я пытаюсь пинговать хосты, используя ansible, удаленная сторона /var/log/secure показывает, что аутентификация по паролю прошла успешно.

Я подтвердил, что Python 2.7x находится на управляемых хостах.

Пользователь, под которым я пытаюсь войти, domain\userid, является непривилегированным. Когда я вхожу в этот ящик вручную, я sudo su - privilegeduser с моим domain\userid пароль, а затем можно выполнить sudo до конца, как root или кто угодно.

Используйте -vvvvv (5 'v) для полной отладки SSH.