Ansible: Не удалось подключиться к хосту по ssh: в доступе отказано (публичный ключ, пароль)

Созданный на 20 дек. 2016  ·  70Комментарии  ·  Источник: ansible/ansible

192.168.1.113 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n", 
    "unreachable": true
}

У меня эта ошибка, я использую Debian Stretch и гостевой manjaro в виртуальном боксе.

affects_2.3

Самый полезный комментарий

Хорошо,
Когда вы указываете all в своей команде, это немного сложно отлаживать.

Прокомментируйте все строки в вашем hosts файле, добавьте эту строку

[webserver]
35.165.79.66 ansible_user=ubuntu 

и попробуйте запустить:

$: ansible webserver -m ping -vvv

И покажи мне результат.
С Уважением

Все 70 Комментарий

Столкнувшись с той же проблемой. Следующий.

Можете ли вы запустить ту же команду с опцией -vvvv для получения дополнительных результатов. пожалуйста !

guru@tj-lp140:/etc/ansible$ ansible all -m ping -vvv
Using /etc/ansible/ansible.cfg as config file
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/core/system/ping.py
<35.165.79.66> ESTABLISH SSH CONNECTION FOR USER: None
<35.165.79.66> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/guru/.ansible/cp/ansible-ssh-%h-%p-%r 35.165.79.66 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1482309322.49-151682117578429 `" && echo ansible-tmp-1482309322.49-151682117578429="` echo /tmp/ansible-tmp-1482309322.49-151682117578429 `" ) && sleep 0'"'"'' 

Спасибо.
Из вашего вывода я вижу, что у вас не указан ansible_user:

<35.165.79.66> ESTABLISH SSH CONNECTION FOR USER: None

Кот, ты тоже показываешь содержимое своего инвентарного файла?

# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups

# Ex 1: Ungrouped hosts, specify before any group headers.

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the 'webservers' group

[webservers]
35.165.79.66

# If you have multiple hosts following a pattern you can specify
# them like this:

## www[001:006].example.com

# Ex 3: A collection of database servers in the 'dbservers' group

## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

# Here's another example of host ranges, this time there are no
# leading 0s:

## db-[99:101]-node.example.com

ssh [email protected] соединение будет установлено. но недоступная команда не может быть завершена.

Хорошо,
Когда вы указываете all в своей команде, это немного сложно отлаживать.

Прокомментируйте все строки в вашем hosts файле, добавьте эту строку

[webserver]
35.165.79.66 ansible_user=ubuntu 

и попробуйте запустить:

$: ansible webserver -m ping -vvv

И покажи мне результат.
С Уважением

guru@tj-lp140:/etc/ansible$ ansible webservers -m ping -vvv
Using /etc/ansible/ansible.cfg as config file
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/core/system/ping.py
<35.165.79.66> ESTABLISH SSH CONNECTION FOR USER: ubuntu
<35.165.79.66> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/home/guru/.ansible/cp/ansible-ssh-%h-%p-%r 35.165.79.66 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494 `" && echo ansible-tmp-1482312980.96-238945640414494="` echo $HOME/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494 `" ) && sleep 0'"'"''
<35.165.79.66> PUT /tmp/tmpxll2kJ TO /home/ubuntu/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494/ping.py
<35.165.79.66> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/home/guru/.ansible/cp/ansible-ssh-%h-%p-%r '[35.165.79.66]'
<35.165.79.66> ESTABLISH SSH CONNECTION FOR USER: ubuntu
<35.165.79.66> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/home/guru/.ansible/cp/ansible-ssh-%h-%p-%r 35.165.79.66 '/bin/sh -c '"'"'chmod u+x /home/ubuntu/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494/ /home/ubuntu/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494/ping.py && sleep 0'"'"''
<35.165.79.66> ESTABLISH SSH CONNECTION FOR USER: ubuntu
<35.165.79.66> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/home/guru/.ansible/cp/ansible-ssh-%h-%p-%r -tt 35.165.79.66 '/bin/sh -c '"'"'/usr/bin/python /home/ubuntu/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494/ping.py; rm -rf "/home/ubuntu/.ansible/tmp/ansible-tmp-1482312980.96-238945640414494/" > /dev/null 2>&1 && sleep 0'"'"''
35.165.79.66 | FAILED! => {
    "changed": false, 
    "failed": true, 
    "invocation": {
        "module_name": "ping"
    }, 
    "module_stderr": "Shared connection to 35.165.79.66 closed.\r\n", 
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 
    "msg": "MODULE FAILURE"
}
<192.168.1.113> ESTABLISH SSH CONNECTION FOR USER: fulgor
<192.168.1.113> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=fulgor -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.1.113 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1482330370.75-42265180130710 `" && echo ansible-tmp-1482330370.75-42265180130710="` echo $HOME/.ansible/tmp/ansible-tmp-1482330370.75-42265180130710 `" ) && sleep 0'"'"''
192.168.1.113 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n", 
    "unreachable": true
}

Я изменил диск с изображением в виртуальном поле, поэтому ключ ssh был восстановлен, но с этого момента у меня появляется сообщение об ошибке.

Не могли бы вы помочь мне ?

Сгенерируйте ssh-ключ на главном узле:

root<strong i="6">@master</strong>:~# ssh-keygen -t rsa -C "[email protected]"

Затем скопируйте свой открытый ключ на серверы с помощью ssh-copy-id:

root<strong i="10">@master</strong>:~# ssh-copy-id [email protected]
root<strong i="11">@master</strong>:~# ssh-copy-id [email protected]

Я получил эту информацию на этом веб-сайте https://valdhaus.co/writings/ansible-post-install/, и он работает

@ guruprasad85 похоже, что вы пропустили "python" на удаленной машине (35.165.79.66).

"module_name": "ping"
},
"module_stderr": "Shared connection to 35.165.79.66 closed.\r\n",
"module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n",
"msg": "MODULE FAILURE"
}

Привет,
Я нашел решение.
Если вы используете ОС ami (ubuntu 16), значит, python не установлен, поэтому вам необходимо установить его. Используйте команду ниже для установки python -

sudo apt-get install python-minimal -y

или

вам необходимо использовать ОС ami (ubuntu 14). Он имеет Python 2.7.

Примечание: подтвердите, какая версия ОС у вас установлена.

Рад, что ты нашел решение.

Я пытаюсь выполнить эхо-запрос с управляющей машины Ansible (установленной в виртуальной машине UBUNTU 14.04) на экземпляр ОС Cent.
Оба являются экземпляром облака Google (с установленным Python).
Я не уверен в статусе связи между ними. Из приведенных ниже результатов ansible all -m ping я понял, что с моим SSH что-то не так.

35.185.191.25 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n",
    "unreachable": true
# ansible all -m ping -vvv
Using /etc/ansible/ansible.cfg as config file
META: ran handlers
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
<127.0.0.1> ESTABLISH SSH CONNECTION FOR USER: None
<127.0.0.1> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/21f0e6a9ae 127.0.0.1 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
<35.185.191.25> ESTABLISH SSH CONNECTION FOR USER: gane
<35.185.191.25> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=gane -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/4596e88996 35.185.191.25 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<127.0.0.1> (255, '', 'Permission denied (publickey).\r\n')
127.0.0.1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n",
    "unreachable": true
}
<35.185.191.25> (255, '', 'Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n')
35.185.191.25 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n",
    "unreachable": true
}

Не могли бы вы предложить мне установить соединение между моими виртуальными машинами.

У меня такая же проблема @ganfotry . В чем причина этой проблемы? Пожалуйста, направьте меня в правильном направлении.

Я исправил это, сгенерировав ключи в обеих виртуальных машинах, а затем скопировав ключи.
наоборот внутри authorized_keys.
Тогда я получил ответ ниже :)

ansible -m ping all
127.0.0.1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
35.186.***.*** | SUCCESS => {
    "changed": false,
    "ping": "pong"

У меня была такая же проблема:

$ ansible local -m ping
127.0.0.1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
"unreachable": true
}

Решил проблему, установив sshpass с помощью команды:

sudo apt-get install sshpass

После установки sshpass я выполнил эту команду:
` json ansible local -m ping --ask-pass SSH password: 127.0.0.1 | SUCCESS => { "changed": false, "ping": "pong" }
Надеюсь это поможет!!!

это сработало для меня, так что может помочь и вам.
Попробуйте зарегистрировать закрытый ключ в своей связке ключей

ssh-agent bash
ssh-add <path to private key>

если это сработает, попробуйте добавить ключи в ваш файл ~ / .ssh / config

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

192.168.122.136 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Warning: Permanently added '192.168.122.136' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,password).\r\n", 
    "unreachable": true 
}

Но я могу получить результат в режиме CLI на сервере.

[root<strong i="10">@node2</strong> ~]# ansible -m ping testservers
openstack | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Ниже приведен описанный результат

[root<strong i="14">@node2</strong> ~]# ansible testservers -m ping -vvv
Using /etc/ansible/ansible.cfg as config file
META: ran handlers
Using module file /usr/lib/python2.7/site-packages/ansible/modules/system/ping.py
<192.168.122.136> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.122.136> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/859aa03053 192.168.122.136 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<192.168.122.136> (0, '/root\n', '')
<192.168.122.136> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.122.136> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/859aa03053 192.168.122.136 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696 `" && echo ansible-tmp-1497787246.45-142355876761696="` echo /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696 `" ) && sleep 0'"'"''
<192.168.122.136> (0, 'ansible-tmp-1497787246.45-142355876761696=/root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696\n', '')
<192.168.122.136> PUT /tmp/tmpkAYqIN TO /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/ping.py
<192.168.122.136> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/859aa03053 '[192.168.122.136]'
<192.168.122.136> (0, 'sftp> put /tmp/tmpkAYqIN /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/ping.py\n', '')
<192.168.122.136> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.122.136> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/859aa03053 192.168.122.136 '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/ /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/ping.py && sleep 0'"'"''
<192.168.122.136> (0, '', '')
<192.168.122.136> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.122.136> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/859aa03053 -tt 192.168.122.136 '/bin/sh -c '"'"'/usr/bin/python /root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/ping.py; rm -rf "/root/.ansible/tmp/ansible-tmp-1497787246.45-142355876761696/" > /dev/null 2>&1 && sleep 0'"'"''
<192.168.122.136> (0, '\r\n{"invocation": {"module_args": {"data": null}}, "changed": false, "ping": "pong"}\r\n', 'Shared connection to 192.168.122.136 closed.\r\n')
openstack | SUCCESS => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "data": null
        }
    }, 
    "ping": "pong"
}
META: ran handlers
META: ran handlers

Спасибо

Вручную попытайтесь получить доступ к серверу на терминале, если вы можете использовать ssh для удаленного сервера, затем удалите каталог .ansible из домашнего каталога локального пользователя. У меня это работает. (у)

Мне то же самое!
Я могу использовать ssh-сервер через терминал без указания директивы -i:

ssh [email protected]

работает

Выполнение команды:

ansible all -m ping

Я получаю сообщение об ошибке:

    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n",  
    "unreachable": true

@lkjangir удаление каталога .ansible также не сработало. знак равно

Попробуйте это, заменив ec2-user на любое имя пользователя, которое вы настроили.

ansible all -u ec2-user -m ping -vvv

@aelkz : в файле / etc / ansible / hosts вы можете поместить: [email protected] вместо server.com а затем попробовать ansible all -m ping .
В противном случае, если вы не указали user1 в / etc / ansible / hosts, вы должны указать пользователя в команде ansible: ansible all -m ping -u user1
У меня была такая же ошибка, и это решение решило мою проблему.

Если я не ошибаюсь, это связано с проблемой ключа ssh. Скорость обновления для нового ключа или преобразование вашего ключа в формат openssh, чтобы избежать ошибки.

Использование --ask-pass вместе с параметрами -u сработало для меня.

@ Hai-minhD Ваше решение сработало для меня, спасибо. Я тестировал на хостах, где у меня был пользователь root в качестве того же пользователя, которого я использовал на управляющей машине. На этом конкретном хосте, где я получал ошибку, о которой сообщалось выше, у меня другой пользователь. Решено добавить хост с этим именем пользователя в файл Ansible hosts: username @ host.

пытаться-

доступный веб-сервер -m ping --ask-pass -i path_to_local_hosts_file

Установил python на подчиненном устройстве, и это сработало для меня.

У меня такая же проблема.
Нахожу решение: добавляю / etc / ansible / hosts:
ansible_ssh_user =ansible_ssh_pass =.

Надеюсь это поможет.

Получаю ошибку. Здесь shivslave - это еще одна виртуальная машина на Virtualbox с IP 192.168.0.5, и я могу успешно подключить ее с помощью [email protected], но команда Ansible не работает. Файл Host содержит

[пример]192.168.0.5

shivmaster @ shivmaster-VirtualBox : пример ~ $ ansible -m ping -u shivslave -vvv
доступный 2.4.1.0
файл конфигурации = /etc/ansible/ansible.cfg
настроенный путь поиска модуля = [u '/ home / shivmaster / .ansible / plugins / modules', u '/ usr / share / ansible / plugins / modules']
расположение модуля ansible python = /usr/lib/python2.7/dist-packages/ansible
расположение исполняемого файла = / usr / bin / ansible
версия python = 2.7.6 (по умолчанию, 26 октября 2016 г., 20:30:19) [GCC 4.8.4]
Использование /etc/ansible/ansible.cfg в качестве файла конфигурации
Разобрал / etc / ansible / hosts источника инвентаря с плагином ini
META: запущенные обработчики
Использование файла модуля /usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
<192.168.0.5> УСТАНОВИТЕ СОЕДИНЕНИЕ SSH ДЛЯ ПОЛЬЗОВАТЕЛЯ: shivslave
<192.168.0.5> SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o Пользователь = shivslave -o ConnectTimeout = 10 -o ControlPath = / home / shivmaster / .ansible / cp / e51c1eb9be 192.168.0.5 '/ bin / sh -c' "'"' echo ~ && sleep 0 '"'" ''
<192.168.0.5> (255, '', 'В доступе отказано (открытый ключ, пароль). \ R \ n')
192.168.0.5 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey, password). \ r \ n",
"недостижимый": правда
}
shivmaster @ shivmaster-VirtualBox : ~ $

@lktslionel
У меня такая же проблема, я пробовал все варианты, упомянутые выше, не могли бы вы помочь здесь

доступный 2.4.2.0
файл конфигурации = /etc/ansible/ansible.cfg
настроенный путь поиска модуля = [u '/ root / .ansible / plugins / modules', u '/ usr / share / ansible / plugins / modules']
расположение модуля ansible python = /usr/lib/python2.7/dist-packages/ansible
расположение исполняемого файла = / usr / bin / ansible
версия python = 2.7.12 (по умолчанию, 20 ноября 2017 г., 18:23:56) [GCC 5.4.0 20160609]
Использование /etc/ansible/ansible.cfg в качестве файла конфигурации
можно отключить, установив deprecation_warnings = False в ansible.cfg.
настройка плагинов инвентаризации
Разобрал / etc / ansible / hosts источника инвентаря с плагином ini
Загрузка минимального плагина обратного вызова типа stdout, v2.0 из /usr/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc
META: запущенные обработчики
Использование файла модуля /usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
<10.0.3.36> УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: root
<10.0.3.36> SSH: EXEC ssh -vvv -C -o ControlMaster = auto -o ControlPersist = 60s -o StrictHostKeyChecking = no -o Port = 22 -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi- keyex, hostbased, publickey -o PasswordAuthentication = no -o User = root -o ConnectTimeout = 10 -o ControlPath = / root / .ansible / cp / c8171a76d6 10.0.3.36 '/ bin / sh -c' "'"' echo ~ && спать 0 '"'" ''
<10.0.3.36> (255, '', 'OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 марта 2016 г. \ r \ ndebug1: чтение данных конфигурации / etc / ssh / ssh_config \ r \ ndebug1: / etc / ssh / ssh_config строка 19: Применение параметров для \ r \ ndebug1: auto-mux: Попытка существующего мастера \ r \ ndebug1: Управляющий сокет "/root/.ansible/cp/c8171a76d6" не существует \ r \ ndebug2: разрешение "10.0 .3.36 "порт 22 \ r \ ndebug2: ssh_connect_direct: needpriv 0 \ r \ ndebug1: Подключение к 10.0.3.36 [10.0.3.36] порт 22. \ r \ ndebug2: установка fd 3 O_NONBLOCK \ r \ ndebug1: fd 3 очистка O_NONBLOCK \ r \ ndebug1: соединение установлено. \ r \ ndebug3: таймаут: 9996 мс остается после подключения \ r \ ndebug1: постоянно_set_uid: 0/0 \ r \ ndebug1: файл идентификации /root/.ssh/id_rsa тип 1 \ r \ ndebug1 : key_load_public: Нет такого файла или каталога \ r \ ndebug1: файл идентификаторов /root/.ssh/id_rsa-cert тип -1 \ r \ ndebug1: key_load_public: Нет такого файла или каталога \ r \ ndebug1: файл идентификаторов / root /. ssh / id_dsa type -1 \ r \ ndebug1: key_load_public: нет такого файла или каталога \ r \ ndebug1: файл идентификации /root/.s сжатие: [email protected] \ r \ ndebug1: kex: client-> server cipher: [email protected] MAC:сжатие: [email protected] \ r \ ndebug3: отправить пакет: тип 30 \ r \ ndebug1: ожидание SSH2_MSG_KEX_ECDH_REPLY \ r \ ndebug3: получить пакет: тип 31 \ r \ ndebug1: ключ хоста сервера: ecdsa-sha2-nistp256 SHA256: JDiSsUdyRJfRGvtqAURzMtKu / Ghp0adBt / l9VbvgDfg \ r \ ndebug3: hostkeys_foreach: чтение файла "/root/.ssh/known_hosts"\r\ndebug3: record_hostotkey\.ndebug3: record_hostotkey\.ndebug3: найден тип ключа ECDSA\.ndebug: тип ключа ECDSA / load_hostkeys: загружен 1 ключ из 10.0.3.36 \ r \ ndebug1: Хост \ '10 .0.3.36 \ 'известен и соответствует ключу хоста ECDSA. \ r \ ndebug1: Найден ключ в /root/.ssh/known_hosts:1\r \ ndebug3: отправить пакет: тип 21 \ r \ ndebug2: set_newkeys: режим 1 \ r \ ndebug1: изменить ключ после 134217728 блоков \ r \ ndebug1: SSH2_MSG_NEWKEYS отправлено \ r \ ndebug1: ожидается SSH2_MSG_NEWKEYSug3 \ r \ n packagede \ r \ ndebug2: set_newkeys: mode 0 \ r \ ndebug1: rekey after 134217728 блоков \ r \ ndebug1: SSH2_MSG_NEWKEYS получено \ r \ ndebug2: key: /root/.ssh/id_ecdsa (0x55cbdc34d840), : /root/.ssh/id_rsa (0x55cbdc33fc30) \ r \ nотладка 2: ключ: /root/.ssh/id_dsa ((nil)) \ r \ ndebug2: key: /root/.ssh/id_ed25519 ((nil)) \ r \ ndebug3: отправить пакет: введите 5 \ r \ ndebug3: получить пакет: введите 7 \ r \ ndebug1: SSH2_MSG_EXT_INFO получено \ r \ ndebug1: kex_input_ext_info: server-sig-algs =\ r \ ndebug3: получить пакет: тип 6 \ r \ ndebug2: service_accept: ssh-userauth \ r \ ndebug1: SSH2_MSG_SERVICE_ACCEPT получен \ r \ ndebug3: отправить пакет: тип 50 \ r \ ndebug3: получить пакет: тип 51 \ r \ ndebug1: аутентификация, которая может продолжаться: publickey, пароль \ r \ ndebug3: начать заново, передать другой список publickey, пароль \ r \ ndebug3: предпочтительный gssapi-with-mic, gssapi-keyex, hostbased, publickey \ r \ ndebug3: authmethod_lookup publickey \ r \ ndebug3: остающийся предпочтительным:, gssapi-keyex, hostbased, publickey \ r \ ndebug3: authmethod_is_enabled publickey \ r \ ndebug1: следующий метод аутентификации: publickey \ r \ ndebug1: Предлагает открытый ключ ECDSA: /root/.ssh/ id_ecdsa \ r \ ndebug3: send_pubkey_test \ r \ ndebug3: send packet: type 50 \ r \ ndebug2: мы отправили пакет с открытым ключом, ждем ответа \ r \ ndebug3: получаем пакет: type 51 \ r \ ndebug1: аутентификации, которые можно продолжить : publickey, пароль \ r \ ndebug1: Предлагаем открытый ключ RSA: /root/.ssh/id_rsa\r\ndebug3: send_pubkey_test \ r \ ndebug3: отправляем пакет: тип 50 \ r \ ndebug2: мы отправили открытый ключ пакет, дождитесь ответа \ r \ ndebug3: получить пакет: тип 51 \ r \ ndebug1: аутентификация, которая может продолжаться: открытый ключ, пароль \ r \ ndebug1: попытка закрытого ключа: /root/.ssh/id_dsa\r\ndebug3: нет такое удостоверение: /root/.ssh/id_dsa: Нет такого файла или каталога \ r \ ndebug1: Пробуем закрытый ключ: /root/.ssh/id_ed25519\r\ndebug3: нет такого удостоверения: /root/.ssh/id_ed25519: Нет такой файл или каталог \ r \ ndebug2: мы не отправили пакет, отключите метод \ r \ ndebug1: больше нет методов аутентификации, которые можно было бы попробовать. \ r \ nПреступление отклонено (открытый ключ, пароль). \ r \ n ')
10.0.3.36 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 марта 2016 г. \ r \ ndebug1: чтение данных конфигурации / etc / ssh / ssh_config \ r \ ndebug1: / etc / ssh / ssh_config строка 19: Применение параметров для \ r \ ndebug1: auto-mux: Попытка существующего мастера \ r \ ndebug1: Управляющий сокет \ "/ root / .ansible / cp / c8171a76d6 \" не существует \ r \ ndebug2 : разрешение \ "10.0.3.36 \" порта 22 \ r \ ndebug2: ssh_connect_direct: needpriv 0 \ r \ ndebug1: Подключение к 10.0.3.36 [10.0.3.36] порту 22. \ r \ ndebug2: установка fd 3 O_NONBLOCK \ r \ ndebug1: fd 3 очистка O_NONBLOCK \ r \ ndebug1: соединение установлено. \ r \ ndebug3: timeout: 9996 мс остается после подключения \ r \ ndebug1: постоянно_set_uid: 0/0 \ r \ ndebug1: файл идентификации /root/.ssh/id_rsa тип 1 \ r \ ndebug1: key_load_public: нет такого файла или каталога \ r \ ndebug1: файл идентификации /root/.ssh/id_rsa-cert тип -1 \ r \ ndebug1: key_load_public: нет такого файла или каталога \ r \ ndebug1: файл идентификации /root/.ssh/id_dsa type -1 \ r \ ndebug1: key_load_public: Нет такого файла или каталога \ r \ nde сжатие: [email protected] \ r \ ndebug1: kex: client-> server cipher: [email protected] MAC:сжатие: [email protected] \ r \ ndebug3: отправить пакет: тип 30 \ r \ ndebug1: ожидание SSH2_MSG_KEX_ECDH_REPLY \ r \ ndebug3: получить пакет: тип 31 \ r \ ndebug1: ключ хоста сервера: ecdsa-sha2-nistp256 SHA256: JDiSsUdyRJfRGvtqAURzMtKu / Ghp0adBt / l9VbvgDfg \ r \ ndebug3: hostkeys_foreach: чтение файла \ "/ root / .ssh / known_hosts \" \ r \ ndebug3: record_hostkey: обнаружен тип ключа ECDSA / 1 / известный rus_hosts: найден тип ключа ECDSA/hosts в файле / ndebug3: load_hostkeys: загружен 1 ключ из 10.0.3.36 \ r \ ndebug1: Хост '10 .0.3.36 'известен и соответствует ключу хоста ECDSA. \ r \ ndebug1: Найден ключ в /root/.ssh/known_hosts:1\r \ ndebug3: отправить пакет: тип 21 \ r \ ndebug2: set_newkeys: режим 1 \ r \ ndebug1: изменить ключ после 134217728 блоков \ r \ ndebug1: SSH2_MSG_NEWKEYS отправлено \ r \ ndebug1: ожидается SSH2_MSG_NEWKEYSug3 \ r \ n packagede \ r \ ndebug2: set_newkeys: mode 0 \ r \ ndebug1: rekey after 134217728 блоков \ r \ ndebug1: SSH2_MSG_NEWKEYS получено \ r \ ndebug2: key: /root/.ssh/id_ecdsa (0x55cbdc34d840), : /root/.ssh/id_rsa (0x55cbdc33fc30) \ r \ nотладка 2: ключ: /root/.ssh/id_dsa ((nil)) \ r \ ndebug2: key: /root/.ssh/id_ed25519 ((nil)) \ r \ ndebug3: отправить пакет: введите 5 \ r \ ndebug3: получить пакет: введите 7 \ r \ ndebug1: SSH2_MSG_EXT_INFO получено \ r \ ndebug1: kex_input_ext_info: server-sig-algs =\ r \ ndebug3: получить пакет: тип 6 \ r \ ndebug2: service_accept: ssh-userauth \ r \ ndebug1: SSH2_MSG_SERVICE_ACCEPT получен \ r \ ndebug3: отправить пакет: тип 50 \ r \ ndebug3: получить пакет: тип 51 \ r \ ndebug1: аутентификация, которая может продолжаться: publickey, пароль \ r \ ndebug3: начать заново, передать другой список publickey, пароль \ r \ ndebug3: предпочтительный gssapi-with-mic, gssapi-keyex, hostbased, publickey \ r \ ndebug3: authmethod_lookup publickey \ r \ ndebug3: остающийся предпочтительным:, gssapi-keyex, hostbased, publickey \ r \ ndebug3: authmethod_is_enabled publickey \ r \ ndebug1: следующий метод аутентификации: publickey \ r \ ndebug1: Предлагает открытый ключ ECDSA: /root/.ssh/ id_ecdsa \ r \ ndebug3: send_pubkey_test \ r \ ndebug3: send packet: type 50 \ r \ ndebug2: мы отправили пакет с открытым ключом, ждем ответа \ r \ ndebug3: получаем пакет: type 51 \ r \ ndebug1: аутентификации, которые можно продолжить : publickey, пароль \ r \ ndebug1: Предлагаем открытый ключ RSA: /root/.ssh/id_rsa\r\ndebug3: send_pubkey_test \ r \ ndebug3: отправляем пакет: тип 50 \ r \ ndebug2: мы отправили открытый ключ пакет, дождитесь ответа \ r \ ndebug3: получить пакет: тип 51 \ r \ ndebug1: аутентификация, которая может продолжаться: открытый ключ, пароль \ r \ ndebug1: попытка закрытого ключа: /root/.ssh/id_dsa\r\ndebug3: нет такое удостоверение: /root/.ssh/id_dsa: Нет такого файла или каталога \ r \ ndebug1: Пробуем закрытый ключ: /root/.ssh/id_ed25519\r\ndebug3: нет такого удостоверения: /root/.ssh/id_ed25519: Нет такой файл или каталог \ r \ ndebug2: мы не отправили пакет, отключите метод \ r \ ndebug1: больше нет методов аутентификации, которые можно было бы попробовать. \ r \ nПреобразование запрещено (открытый ключ, пароль). \ r \ n ",
"недостижимый": правда
}
корень @ ip-172-31-31-140: ~ / .ssh #

У меня была такая же проблема, ansible пытается подключиться, используя ваше текущее имя пользователя, поэтому я пытался переписать имя пользователя, например:
ansible all -m ping -u ec2-user

Я столкнулся с двумя ошибками при запуске ansible all -m ping и наткнулся на эту ветку, чтобы t-shot. Я хочу поблагодарить всех за их вклад, поскольку он помог мне разобраться в этом.

: ОШИБКА-1:
Действия по устранению этого сообщения: "msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey, password). \ R \ n"
1) Я изменил файл конфигурации исправления в / etc / ansible / hosts, чтобы включить правильное имя пользователя ubuntu.
2) Я передал аргумент --private-key = / Users / my-user / .ssh / my-key.pem, поэтому команда выглядела так:
ansible all -m ping --private-key = / Пользователи / мой-пользователь / .ssh / my-key.pem
Это руководство проинформировало меня о том, как передать ключ в качестве аргумента:
https://ansible-tips-and-tricks.readthedocs.io/en/latest/ansible/commands/

: ОШИБКА 2:
"module_stdout": "/ bin / sh: 1: / usr / bin / python: not found \ r \ n",
Чтобы исправить это, я запустил sudo apt-get update; sudo apt-get install python 'на удаленном хосте. Я использую экземпляр ec2. Примечание: запуск команд установки как части сценария запуска поможет решить вторую проблему.

Ваше здоровье!

Похоже, на наших серверах Ubuntu 16.04 отсутствовал питон. Я установил его на все удаленные хосты, и проблема была устранена:
sudo apt-get install python-minimal -y

SSH будет подключаться к терминалам, но не к vsts и ansible, может ли кто-нибудь мне помочь?

Пытаюсь настроить SSH-соединение на * @ 10.130.2.142: 22
2018-04-04T21: 56: 46.6533908Z
2018-04-04T21: 56: 46.6549162Z ИГРАТЬ [все] * * * * * * * * * * * * * * * * * * * * *
2018-04-04T21: 56: 46.6555625Z
2018-04-04T21: 56: 46.6603308Z
2018-04-04T21: 56: 46.6616154Z ЗАДАЧА [Создать каталоги] * * * * * * * * * * * * * * * *
2018-04-04T21: 56: 46.6622522Z
2018-04-04T21: 56: 46.8874071Z сбой: [10.130.2.206] (item = / home / * / myagent /) => {"item": "/ home / * / myagent /", "msg": " Не удалось подключиться к хосту через ssh: Permission denied (publickey). \ R \ n "," unreachable ": true}
2018-04-04T21: 56: 46.8880968Z
2018-04-04T21: 56: 47.0341093Z не удалось: [10.130.2.206] (item = / home / * / mywork /) => {"item": "/ home / * / mywork /", "msg": " Не удалось подключиться к хосту через ssh: Permission denied (publickey). \ R \ n "," unreachable ": true}
2018-04-04T21: 56: 47.0349137Z
2018-04-04T21: 56: 47.0363780Z фатальный: [10.130.2.206]: недостижимо! => {"changed": false, "msg": "Все элементы завершены", "results": [{"_ansible_ignore_errors": null, "_ansible_item_result": true, "item": "/ home / * / myagent /" , "msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey). \ r \ n", "unreachable": true}, {"_ansible_ignore_errors": null, "_ansible_item_result": true, "item" : "/ home / * / mywork /", "msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey). \ r \ n", "unreachable": true}]}
2018-04-04T21: 56: 47.0371817Z
2018-04-04T21: 56: 47.0387681Z, чтобы повторить попытку, используйте: --limit @ / tmp / Infrax / Agent_config.retry
2018-04-04T21: 56: 47.0397434Z
2018-04-04T21: 56: 47.0403265Z
2018-04-04T21: 56: 47.0415230Z ВОСПРОИЗВЕДЕНИЕ * * * * * * * * * * * * * * * * * * * * *
2018-04-04T21: 56: 47.0421749Z
2018-04-04T21: 56: 47.0434107Z 10.130.2.206: ok = 0 изменено = 0 недоступно = 1 сбой = 0
2018-04-04T21: 56: 47.0440861Z
2018-04-04T21: 56: 47.0446720Z
2018-04-04T21: 56: 47.0452765Z
2018-04-04T21: 56: 47.0850279Z ## [ошибка] Команда ansible-playbook -i "10.130.2.206," /tmp/Infrax/Agent_config.yaml -b --become-user * завершена с кодом 4.
2018-04-04T21: 56: 47.0948275Z ## [раздел] Завершение: запустить playbook

Когда я нажал на это, я использовал Ansible в OSX для подключения к ящику aws с сертификатом pem. У меня НЕ было файла ~ / .ssh / config. Как только я создал один и добавил не более этого:

Хозяин *
IdentityFile ~ / .ssh / id_rsa
AddKeysToAgent да

Тогда я волшебным образом научился исполнять пьесы.

Я получаю указанную ниже ошибку при попытке скопировать файл с управляющей машины на узел.

КОМАНДА: sudo ansible dbservers -m copy -a "src = / etc / ansible / Taha dest = / etc / Taha"
Ошибка:
52.186.71.70 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: в доступе отказано (publickey, gssapi-keyex, gssapi-with-mic, пароль, интерактивная клавиатура). \ r \ n",
"недостижимый": правда
}

Я попробовал все вышеперечисленные шаги, но безуспешно ....

попробуйте передать файл инвентаризации и ключ ssh с именем пользователя. У меня нет пользователя, определенного в инвентаре для узлов, поэтому я передаю команду, и она всегда работает для меня. так что команда будет такой -

sudo ansible dbservers -m -i inventory / inventory-file --user = ubuntu --private-key = "private-key.pem" copy -a "src = / etc / ansible / Taha dest = / etc / Taha"

Спасибо Локешу за помощь ...

Поскольку я новичок в ansible, я просто хочу знать, где я могу сохранить файл PEM на сервере управления? мне нужно внести изменения в инвентарный файл?

t Привет, ребята,
У меня такая же проблема.
Мой пользователь DevOps мог использовать ssh для всех серверов, но когда я пытался запустить (с mysuer), доступные команды, я всегда получал ошибку ... НЕДОСТУПЕН! ...
Я решил это, сделав с "mysuer" ssh serverDestiny (сервер, который находится в файле инвентаризации) примечание, если вы используете fqdn, вы должны сделать ssh для FQDN.
пример:
кошачий инвентарь
server1

[ myuser @ рабочая станция ansible-deploy-cr] ssh-keygen
[ myuser @ рабочая станция ansible-deploy-cr] ssh-copy-id -i DevOps @ server1
контрольная работа..
[ myuser @ рабочая станция ansible-deploy-cr] ssh ' DevOps @ server1

Надеюсь, что это поможет вам.
если да, поставьте лайк 👍
Спасибо,
MBrito

10.20.2.42
ansibleclient.com

[root @ansibleserver ~] # ansible all -m ping
10.20.2.42 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: в доступе отказано (publickey, gssapi-keyex, gssapi-with-mic, пароль). \ r \ n",
"недостижимый": правда
}
ansibleclient.com | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey, password). \ r \ n",
"недостижимый": правда
}
[ root @ ansibleserver ~] #

Пожалуйста, помогите мне в этом вопросе .. я думаю, нам нужно создать ключ ssh, как создать пошаговый процесс, пожалуйста, я не эксперт

Любезно помогите

Это исправлено путем добавления генерации ключа ssh на сервер и его копирования клиенту.

Команды:

$ ssh-keygen -t rsa

нажмите Enter

$ cd root /
$ la -la

скопируйте id_rsa.pub в целевую виртуальную машину
$ ssh-copy-id назначение vm

ssh-copy-id -i пользователь @ localhost
ssh-copy-id -i пользователь @ servers_in_inventory

кажется работает

Этот URL-адрес является первым попаданием Google по этой ошибке, поэтому, хотя эта «проблема» закрыта, люди будут продолжать попадать по ней в обозримом будущем. Вот как я исправил это для python3 , ansible 2.5 (обе являются версиями PIP в virutualenv) и OSX High Sierra.
Сообщаю о моем «исправлении» для моего сценария. Бег:
$ python3 $ (который недоступен) localhost -m ping -vvvv

Приведет к этой ошибке. -vvvv показывает, что это ошибка ключа / аутентификации. Здорово. Вы можете изолировать Ansible от этого, просто выполнив [email protected] и для меня это не удалось (я считаю отказ войти с помощью ключей SSH как сбой).

Простое исправление: at ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

У меня была такая же проблема, и я сам нашел решение, я расскажу вам, что со мной происходит.
Я получаю ту же ошибку, и я решаю ее cz в той же папке proyect, у меня был файл hosts, и по какой-то причине произошла ошибка, поэтому просто с помощью rm -r hosts я решил ее.
Я расскажу вам, если у вас такая же проблема, как и у меня.

Счастливого Рождества X), xoxo.

У меня была такая же проблема, пока я не отредактировал свой файл инвентаря с помощью
[testserver]
<target_ip> ansible_user=<target_domain_name> ansible_ssh_pass=<target_pass>
Затем для проверки:
ansible testserver -m ping

ubuntu @ ip-172-31-1-85 : / etc / ansible $ sudo ansible-playbook tomserver.yml

PLAY [вебсерверов] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **

ЗАДАЧА [Сбор Факты] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
фатальный: [54.153.119.230]: НЕДОСТУПНО! => {"changed": false, "msg": "Не удалось подключиться к хосту через ssh: нет такого идентификатора: /root/UbuntuAnsible.pem: Нет такого файла или каталога \ r \ nПреобразование запрещено (открытый ключ). \ r \ n "," unreachable ": true}
чтобы повторить попытку, используйте: --limit @ / etc / ansible / tomserver.retry

пожалуйста помоги

Вы пытаетесь просто подключиться? Как выглядит ваш файл hosts?

В среду, 12 сентября 2018 г., FALCON-SJSU [email protected]
написал:

фатальный: [54.153.119.230]: НЕДОСТУПНО! => {"изменено": false, "msg": "Не удалось
для подключения к хосту через ssh: такого идентификатора нет: /root/UbuntuAnsible.pem:
Нет такого файла или каталога. \ R \ nВозможность запрещена (открытый ключ). \ R \ n ",
"unreachable": true}
чтобы повторить попытку, используйте: --limit @ / etc / ansible / tomserver.retry

пожалуйста помоги

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-420827308 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8H0G3NUSkpFXpcm2hkAXXGco3eMmyks5uaZO0gaJpZM4LSWpz
.

Я нашел решение.
Моя операционная система была Mac OS, и я меняю файл ansible.cfg в строке remote_user = root, проблема решена.

Ага! Мне пришлось сделать то же самое! Рад, что ты решил это!

Во вторник, 18 сентября 2018 г., в 4:09 ZhangZhongyuan [email protected]
написал:

Я нашел решение.
Моей операционной системой была Mac OS, и я изменил файл ansible.cfg в
строка 'remote_user = root', проблема решена.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-422297005 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8H0zGJ4zE4mKmaMtXDAtInZNDlrW4ks5ucKpCgaJpZM4LSWpz
.

Я запустил playbook со следующими флагами:

ansible-playbook playbook.yml --ask-pass - это помогло.

В хостах вы также можете сделать права ansibleuser = "user" ansiblepass = "pass"
рядом с ip для цели. Это позволяет мне запускать игровые книги без каких-либо
дополнительные запросы пароля.

Вторник, 2 октября 2018 г., в 11:15 jluntnscc [email protected] написал:

Я запустил playbook со следующими флагами:

ansible-playbook playbook.yml --ask-pass - это помогло.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-426312089 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8HzRVj8-BqcUiQywgQYKIVbcr4yzdks5ug4MEgaJpZM4LSWpz
.

попробуй это

все серверы - Работает, когда имена пользователя и сервера, и клиента совпадают (без пароля)

ansible all -m ping

все серверы - "raj" - пользователь управляемого узла (без пароля)

ansible all -u raj -m ping

ИЛИ

Только группа демо-серверов - "raj" является пользователем управляемого узла (без пароля)

доступные демонстрационные серверы -u raj -m ping

ИЛИ

Если вы используете аутентификацию по паролю

ansible -m ping all -u raj --ask-pass

или вы можете перейти по этой ссылке для получения дополнительной информации
https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-ansible-automation-tool-for-it-management-on-centos-7-ubuntu-14-04-fedora- 22-часть-1.html

Что сработало для меня, так это обновить мой файл hosts, чтобы указать путь к ключу ssh:

[webserver]
IP_ADDRESS ansible_user=ubuntu ansible_connection=ssh ansible_private_key_file=~/.ssh/key.pem

Хорошее решение. Это позаботится о нескольких целях!

В понедельник, 29 октября 2018 г., в 16:02 fhackenb [email protected] написал:

Что сработало для меня, так это обновить файл моих хостов, чтобы указать путь к ssh
ключ:

[веб сервер]
IP_ADDRESS ansible_user = ubuntu ansible_connection = ssh ansible_private_key_file = ~ / .ssh / key.pem

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-434057611 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8HzLY4PQVaWdPDOH0bHGnh9xpzmDWks5up17AgaJpZM4LSWpz
.

работает нормально после решения @ riteshpuj2013 .

ansible-playbook test.yml --ask-pass

я получаю эту проблему, не знаю, как продвигаться

[email protected] | Недостижимо! => {
"изменено": ложь,
"msg": "Ошибка аутентификации или разрешения. В некоторых случаях вы могли пройти аутентификацию и не имели разрешений в целевом каталоге. Рассмотрите возможность изменения удаленного пути tmp в ansible.cfg на путь с корнем в \" / tmp \ ". Неудачная команда: (umask 77 && mkdir -p \" echo /tmp/.ansible/tmp/ansible-tmp-1543139945.24-52208136278646 \ "&& echo ansible-tmp-1543139945.24-52208136278646 = \" echo /tmp/.ansible/tmp/ansible-tmp-1543139945.24-52208136278646 \ "), завершился с результатом 1 ",
"недостижимый": правда
}

возможность запускать playbook с помощью ansible, но при выполнении той же playbook с ошибкой ansible tower


<192.168.0.17> УСТАНОВИТЬ СОЕДИНЕНИЕ SSH ДЛЯ ПОЛЬЗОВАТЕЛЯ: admin
<192.168.0.17> SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o StrictHostKeyChecking = no -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o User = admin -o ConnectTimeout = 10 -o ControlPath = / tmp / awx_86_9cdeKb / cp / 86796477d7 192.168.0.17 '/ bin / sh -c' "'"' echo ~ admin && sleep 0 '"'" ''
<192.168.0.17> (255, '', "Предупреждение: Постоянно добавлено '192.168.0.17' (ECDSA) в список известных хостов. \ R \ nПреобразование запрещено (publickey, gssapi-keyex, gssapi-with-mic, пароль ). \ r \ n ")
фатальный: [192.168.0.17]: НЕДОСТУПНО! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: Предупреждение: Постоянно добавлено '192.168.0.17' (ECDSA) в список известных хостов. \ r \ nПреобразование запрещено (publickey, gssapi-keyex, gssapi-with-mic , пароль). \ r \ n ","недостижимый": правда
}

У меня проблема, дайте мне решение

убунту @master: ~ $ анзибль-сборник пьес playbook2.yml -b PLAY [172.31.42.20] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ЗАДАЧ [Сбор Факты] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
фатальный: [172.31.42.20]: НЕДОСТУПНО! => {"changed": false, "msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey, password). \ r \ n", "unreachable": true}
чтобы повторить попытку, используйте: --limit @ / дома / убунту / playbook2.retry ВОСПРОИЗВЕДЕНИЕ RECAP * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

172.31.42.20: ok = 0 изменено = 0 недоступно = 1 не удалось = 0

У меня проблема, дайте мне решение

убунту @ мастер : ~ $ анзибль-сборник пьес playbook2.yml -b PLAY [172.31.42.20] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ЗАДАЧ [Сбор Факты] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

фатальный: [172.31.42.20]: НЕДОСТУПНО! => {"changed": false, "msg": "Не удалось подключиться к хосту через ssh: Permission denied (publickey, password). \ r \ n", "unreachable": true}
чтобы повторить попытку, используйте: --limit @ / дома / убунту / playbook2.retry ВОСПРОИЗВЕДЕНИЕ RECAP * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
172.31.42.20: ok = 0 изменено = 0 недоступно = 1 не удалось = 0

У нас есть два решения: -

password less auth (you can refer google how to generate rsa key )
add ask_pass=true in ancible.cfg file. (This will ask password when you run ansible)

Настройте SSH-соединение с хост-компьютером и проверьте его.
Как только это будет сделано, укажите в файле / etc / ansible / hosts правильный IP-адрес хоста.
Теперь, чтобы проверить безопасное соединение между ansible и гостевой машиной, используйте следующую команду:
-> ansible -i hosts -u vagrant --ask-pass -m ping all
hosts-> hosts файл (укажите правильный гостевой ip)
-u vagrant -> vagrant - имя пользователя моей гостевой машины
--ask-pass-> Позволяет ввести пароль SSH для подключения к гостевому m / c.
Примечание. Если я не использую --ask-pass, будет выдана ошибка.

Спасибо, если поможет :)

вполне возможно, что ваш / etc / ansible / hosts неправильный

Я новичок в ансибле, может ли кто-нибудь мне помочь?

34.201.109.32 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: [email protected] : Permission denied (publickey). \ r \ n",
"недостижимый": правда
}

Попробуйте включить пароль для целевой машины в файл hosts.
Как правило, вам необходимо иметь существующее соединение ssh, которое
генерирует ключ RSA для вашего хоста и вашего локального компьютера. Попробуйте ssh в
host, затем снова запустите ansible.

Вск, 20 января 2019 г., 11:22 Венката Бханусри Вадламуди <
[email protected]> написал:

Я новичок в ансибле, может ли кто-нибудь мне помочь?

34.201.109.32 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: [email protected] :
В доступе отказано (публичный ключ). \ R \ n ",
"недостижимый": правда
}

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-455880089 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8H0nPfSdUELQxzoQAvvHHlsau7uyBks5vFJfOgaJpZM4LSWpz
.

Когда я использую команду ssh со своего локального терминала, я могу подключиться к экземпляру ec2. Однако, когда я запускаю сценарий ansible, я получаю сообщение об ошибке.

34.201.109.32 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: [email protected] : Permission denied (publickey). \ r \ n",
"недостижимый": правда
}

Для экземпляров AWS ec2 вы должны сгенерировать открытый ключ через AWS,
загрузите его и укажите в сеансе ssh этот ключ. Есть учебники для
эта процедура онлайн.

Вск, 20 января 2019 г., 16:48 Венката Бханусри Вадламуди <
[email protected]> написал:

Когда я использую команду ssh со своего локального терминала, я не могу подключиться
к экземпляру ec2. Однако, когда я запускаю сценарий ansible, я получаю сообщение об ошибке.

34.201.109.32 | Недостижимо! => {
"изменено": ложь,
"msg": "Не удалось подключиться к хосту через ssh: [email protected] :
В доступе отказано (публичный ключ). \ R \ n ",
"недостижимый": правда
}

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ansible/ansible/issues/19584#issuecomment-455905472 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/An-8Hya_SkLrHT-HLYEOPEE2QXsSuDOJks5vFOQOgaJpZM4LSWpz
.

t Привет, ребята,
У меня такая же проблема.
Мой пользователь DevOps мог использовать ssh для всех серверов, но когда я пытался запустить (с mysuer), доступные команды, я всегда получал ошибку ... НЕДОСТУПЕН! ...
Я решил это, сделав с "mysuer" ssh serverDestiny (сервер, который находится в файле инвентаризации) примечание, если вы используете fqdn, вы должны сделать ssh для FQDN.
пример:
кошачий инвентарь
server1

[ myuser @ рабочая станция ansible-deploy-cr] ssh-keygen
[ myuser @ рабочая станция ansible-deploy-cr] ssh-copy-id -i DevOps @ server1
контрольная работа..
[ myuser @ рабочая станция ansible-deploy-cr] ssh ' DevOps @ server1

Надеюсь, что это поможет вам.
если да, поставьте лайк 👍
Спасибо,
MBrito

Это устранило мою проблему в AWS на частном VPC, мне нужен внутренний fqdn для всех серверов.

Привет, ребята,
Я столкнулся с той же проблемой для localhost и понял, что «$ ssh localhost» запрашивает пароль. Я решил это, переместив открытый ключ пользователя на локальном хосте в authorized_key.

ssh-copy-id -i ~ / .ssh / id_rsa.pub test @ localhost

Просто проверьте, есть ли в файлах authorized_key необходимые ключи

test - это имя пользователя

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

vagrant<strong i="6">@mgmt</strong>:~$ ansible lb -u vagrant -m ping -vvv
ansible 2.7.8
  config file = /home/vagrant/ansible.cfg
  configured module search path = [u'/home/vagrant/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
Using /home/vagrant/ansible.cfg as config file
[DEPRECATION WARNING]: [defaults]hostfile option, The key is misleading as it can also be a list of hosts, a directory or a list of paths , use [defaults] inventory=/path/to/file|dir 
instead. This feature will be removed in version 2.8. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
/home/vagrant/inventory.ini did not meet host_list requirements, check plugin documentation if this is unexpected
/home/vagrant/inventory.ini did not meet script requirements, check plugin documentation if this is unexpected
/home/vagrant/inventory.ini did not meet yaml requirements, check plugin documentation if this is unexpected
Parsed /home/vagrant/inventory.ini inventory source with ini plugin
 [WARNING]: Found both group and host with same name: lb

META: ran handlers
<lb> ESTABLISH SSH CONNECTION FOR USER: vagrant
<lb> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 -o ControlPath=/home/vagrant/.ansible/cp/2302ac11ec lb '/bin/sh -c '"'"'echo ~vagrant && sleep 0'"'"''
<lb> (255, '', 'Permission denied (publickey).\r\n')
lb | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).", 
    "unreachable": true
}

РЕШЕНИЕ

Хорошо, вот что сработало для меня -
Я зашел на удаленную машину фунт . отредактировал ~ / .ssh / authorised_keys и добавил ключ id_rsa.pub доступного мастера. Сохранено и закрыто. Закинул sshd на фунт.

Это не идеальный способ, но он поможет вам пройти первоначальное тестирование.

Изменить 1. Кроме того, вам необходимо убедиться, что на удаленном компьютере (клиент, который будет управляться с помощью ansible) должен быть установлен python.

PS - даже метод ssh-copy-id -i не удался для меня с той же ошибкой отказа в разрешении (publickey)

бродяга @ mgmt : ~ $ ansible lb -m ping -vvv
доступный 2.7.8
файл конфигурации = /home/vagrant/ansible.cfg
настроенный путь поиска модуля = [u '/ home / vagrant / .ansible / plugins / modules', u '/ usr / share / ansible / plugins / modules']
расположение модуля ansible python = /usr/lib/python2.7/dist-packages/ansible
расположение исполняемого файла = / usr / bin / ansible
версия python = 2.7.12 (по умолчанию, 12 ноября 2018 г., 14:36:49) [GCC 5.4.0 20160609]
Использование /home/vagrant/ansible.cfg в качестве файла конфигурации
[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕВАНИИ]: параметр [defaults] hostfile. Ключ вводит в заблуждение, так как это также может быть список хостов, каталог или список путей, используйте [defaults] inventory = / path / to / file | dir
вместо. Эта функция будет удалена в версии 2.8. Предупреждения об устаревании можно отключить, установив deprecation_warnings = False в ansible.cfg.
/home/vagrant/inventory.ini не соответствует требованиям host_list, проверьте документацию плагина, если это неожиданно
/home/vagrant/inventory.ini не соответствует требованиям скрипта, проверьте документацию плагина, если это неожиданно
/home/vagrant/inventory.ini не соответствует требованиям yaml, проверьте документацию плагина, если это неожиданно
Анализ источника инвентаря /home/vagrant/inventory.ini с помощью плагина ini
[ВНИМАНИЕ]: обнаружены и группа, и хост с тем же именем: lb

META: запущенные обработчики
УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет
SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 lb '/ bin / sh -c' "'"' echo ~ && sleep 0 '"'" ''
(0, '/ главная / бродяга \ п', '')
УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет
SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 lb '/ bin / sh -c' "'"' (umask 77 && mkdir -p " echo /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286 " && echo ansible-tmp-1552670816.4-42574892310286 = " echo /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286 ") && спать 0 '"'" ''
(0, 'ansible-tmp-1552670816.4-42574892310286 = / home / vagrant / .ansible / tmp / ansible-tmp-1552670816.4-42574892310286 \ n', '')
Использование файла модуля /usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py
PUT /home/vagrant/.ansible/tmp/ansible-local-2173_L8KXK/tmpXoK8R8 TO /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286/AnsiballZ_ping.py
SSH: EXEC sftp -b - -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 '[фунт]'
(0, 'sftp> положить /home/vagrant/.ansible/tmp/ansible-local-2173_L8KXK/tmpXoK8R8 /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286/AnsiballZ_ping.py\n', ')
УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет
SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 lb '/ bin / sh -c' "'"' chmod u + x /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286/ / home /vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286/AnsiballZ_ping.py && sleep 0 '"'" ''
(0, '', '')
УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет
SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 -tt lb '/ bin / sh -c' "'"' / usr / bin / python /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4- 42574892310286 / AnsiballZ_ping.py && sleep 0 '"'" ''
(0, '\ r \ n {"invocation": {"module_args": {"data": "pong"}}, "ping": "pong"} \ r \ n', 'Общее соединение с lb закрыто. \ r \ n ')
УСТАНОВИТЬ SSH-СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: Нет
SSH: EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / vagrant / .ansible / cp / e51df67eb4 lb '/ bin / sh -c' "'"' rm -f -r /home/vagrant/.ansible/tmp/ansible-tmp-1552670816.4-42574892310286/> / dev / null 2> & 1 && sleep 0 '"'" ''
(0, '', '')
фунт | УСПЕХ => {
"изменено": ложь,
"invocation": {
"module_args": {
"данные": "понг"
}
},
"настольный теннис"
}

Была ли эта страница полезной?
0 / 5 - 0 рейтинги