如何解决“无法通过ssh连接到主机”问题

时间:2019-04-01 12:43:12

标签: ssh server ansible host

当我从一台服务器到另一台远程服务器执行ansible剧本时,出现错误

“ msg”:“无法通过ssh连接到主机:ssh_askpass:exec(/ usr / bin / ssh-askpass):没有此类文件或目录\ r \ n主机密钥验证失败。”,“无法访问”:是”

打击是我的剧本

- hosts: igwcluster_AM:igwcluster_IS
  become: true
  become_method: sudo
  gather_facts: True



  tasks: 

    - name: Install Oracle Java 8
     script:/data2/jenkins/workspace/PreReq_Install_To_Servers/IGW/IGW_Cluster/prereqs_Products/Java.sh

我正在使用两个主机组,每个组有2个服务器。

错误日志:

不可逾越! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:ssh_askpass:exec(/ usr / bin / ssh-askpass):没有此类文件或目录\ r \ n主机密钥验证失败。 “,” unreachable“:true}

注意:我已经尝试过

    host_key_checking = False
    ssh_args = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

但是仍然失败。请给我建议

1 个答案:

答案 0 :(得分:0)

首先,您必须在“ script:”之后放置空格,并将脚本精确地放置在“ name:”下方,这样看起来就可以了。

    tasks: 
   - name: Install Oracle Java 8
     script: /data2/jenkins/workspace/PreReq_Install_To_Servers/IGW/IGW_Clust/prereqs_Products/Java.sh

尝试使用ssh密钥进行ssh授权。

在您要从其执行ansible剧本的服务器上,如果尚未生成ssh密钥,则可以使用简单的命令进行操作:

ssh-keygen 
(press enter till command exit)

接下来通过ssh copy id命令将其复制到远程服务器:

ssh-copy-id <remote server IP/FQDN>

此后,您的ansible服务器将能够在没有密码提示的情况下连接到远程服务器,并且不会出现此错误。

如果该方法不适合您,请共享以下信息:

  1. 主机文件
  2. 成为您用来运行此剧本的用户