linux Ansible安装完毕后,测试报连接主机显示报错

一、问题描述

  1. 当安装完毕Ansible之后,一般需要以SSH的方式连接到需要进行管理的目标主机进行测试。但是报了以下问题:
[root@inmshgis24 ~]# ansible 10.130.0.33 -m ping 
10.130.0.33 | UNREACHABLE! => {

"changed": false, 
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", 
"unreachable": true

}

二、 原因分析

  1. 当我们将10.130.0.33主机作为管理主机,但在管理主机上并未添加目标节点(即需要管理的节点)的ssh认证信息。

三、解决步骤

  1. 管理主机节点生成SSH-KEY
[root@inmshgis24 ~]# ssh-keygen

注意:检查~.ssh/目录下是否出现生成的ssh密钥文件:id_rsa及id_rsa.pub

  1. 添加目标主机节点的SSH认证信息
[root@inmshgis24 ~]# ssh-copy-id root@目标节点IP

说明:
(1)root:是在目标节点上登录的用户;
(2)@:符号后面接目标节点IP即可;
(3)提示:输入目标节点root用户密码,输入即可;
(4)添加认证信息后,目标节点主机的~/.ssh/目录下将会出现一个authorized_keys文件,里面包含了ansible管理主机节点的公钥信息,可以检查一下是否存在。

  1. 确定目标主机节点的SSH认证信息都已正确添加
  2. 目标主机节点的~/.ssh/目录下存在管理节点的公钥信息后,再执行之前出错的ansible ping指令:
[root@inmshgis24 ~]# vi/etc/ansible/hosts
[test]
10.130.0.33
[root@inmshgis24 ~]# ansible 10.130.0.33 -m ping  

在这里插入图片描述
补充:

  1. 期间报了这个错误:
    Traceback (most recent call last): File “/usr/bin/ansible”, line 197, in (runner, results) = cli.run(options, args) File “/usr/bin/ansible”, line 163, in run extra_vars=extra_vars, File “/usr/lib/python2.6/site-packages/ansible/runner/init.py”, line 233, in init cmd = subprocess.Popen([‘ssh’,’-o’,‘ControlPersist’], stdout=subprocess.PIPE, stderr=subprocess.PIPE) File “/usr/lib64/python2.6/subprocess.py”, line 639, in init errread, errwrite) File “/usr/lib64/python2.6/subprocess.py”, line 1228, in _execute_child raise child_exceptionOSError: [Errno 2] No such file or directory

  2. 解决如下:

[root@inmshgis24 ~]# yum install openssh-clients 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章