【Ansible】使用SSH密码认证的方法在ansible执行时
首先
我想要输出关于在ansible执行时使用SSH密码认证的方法。
这次的环境
- OS
(venv) [root@tspdev01 test_role]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
(venv) [root@tspdev01 test_role]#
- Ansibleバージョン
(venv) [root@tspdev01 test_role]# ansible --version
ansible 2.9.10
config file = /root/.ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /root/venv/lib/python2.7/site-packages/ansible
executable location = /root/venv/bin/ansible
python version = 2.7.5 (default, Apr 2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
(venv) [root@tspdev01 test_role]#
应对的内容
将以下内容添加到ansible.cfg中。
[defaults]
ask_pass = True
※ansible.cfg的位置根据安装方式而异。
如果使用yum install ansible进行安装,它将存在于以下目录中。
/etc/ansible/ansible.cfg
试试ping连通性。
会是这样的感觉。
(venv) [root@tspdev01 test_role]# ansible -i inventory/test01_inventory.ini test_servers -m ping --ask-pass
SSH password:
192.168.56.51 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
(venv) [root@tspdev01 test_role]#
如果是pong,那么就说明ping通了。
这次的经历
当我最初运行ansible时,出现了以下错误。
(venv) [root@tspdev01 test_role]# ansible -i inventory/test01_inventory.ini test_servers -m ping
192.168.56.51 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).",
"unreachable": true
}
(venv) [root@tspdev01 test_role]#
在寻找错误原因的过程中,我找到了有关使用ansible执行时使用SSH密码认证的方法的信息。
请提供更多上下文信息。
使用Ansible时,无法通过ssh连接到主机:Permission denied错误,无法登录到目标主机。