【问题标题】:how to fix the issue "Failed to connect to the host via ssh" in ansible如何解决ansible中“无法通过ssh连接到主机”的问题
【发布时间】:2019-08-22 15:17:30
【问题描述】:

当我从一台服务器执行 ansible playbook 到另一台远程服务器时,我收到一个错误,因为

"msg": "通过 ssh 连接主机失败: ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory\r\n主机密钥验证失败。", "unreachable":真的”

吹是我的剧本

- 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 台服务器。

错误日志:

无法访问! => {"changed": false, "msg": "通过 ssh 连接主机失败:ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory\r\n主机密钥验证失败。 ", "无法访问": true}

注意:我已经尝试过

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

但还是失败了。请给我建议

【问题讨论】:

    标签: ssh server ansible host


    【解决方案1】:

    首先,您必须在“script:”之后放置空格,并将 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 playbook 的服务器上,如果您还没有生成 ssh 密钥,您可以使用简单的命令:

    ssh-keygen 
    (press enter till command exit)
    

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

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

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

    如果此方法不适合您,请分享此信息:

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

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 2017-02-08
      • 2018-07-22
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      相关资源
      最近更新 更多