在我们的 AWX 环境中,我们有一个适用于 RHEL 7/RHEL 8 的 Ansible 角色“Nessus Applicaiton”。它可以为新的 RHEL 7 服务器很好地部署 Nessus 代理应用程序,但不能为 RHEL 8.5 服务器部署,因为它似乎无法通过 SSH 端口 22 连接。
我们还有其他几个模板,允许 AWX 连接到root
RHEL 8 目标主机,并部署其他角色和模板而不会出现问题。
根公钥被嵌入到authorized_keys
RHEL 7/RHEL 8 镜像中。
firewalld
未启用。没有防火墙规则阻止 AWX 访问目标主机。root
我使用用户名和密码以及 ssh 密钥测试了从 AWX 服务器到目标主机的 SSH,没有出现问题。每种连接方法都有效。我尝试从authorized_keys
目标主机上删除公钥并重新添加。- 我已尝试禁用 AWX 主机和目标主机上的 GSS 身份验证,重新启动
sshd
,然后重新运行 AWX Nessus 应用程序角色部署。 - 在
ansible.cfg
Git repo 中尝试更改ssh_args
为IdentitiesOnly=no
- 尝试添加
[ssh_connection] ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=no
致命:[devops11422-n]:无法访问! => {“changed”: false,“msg”:“无法通过 ssh 连接到主机:OpenSSH_8.0p1,OpenSSL 1.1.1c FIPS 2019 年 5 月 28 日\r\ndebug1:正在读取配置数据 /etc/ssh/ssh_config\r\ndebug3:/etc/ssh/ssh_config 第 51 行:包括文件 /etc/ssh/ssh_config.d/05-redhat.conf 深度 0\r\ndebug1:正在读取配置数据 /etc/ssh/ssh_config.d/05-redhat.conf\r\ndebug2:检查‘final all’主机 204.67.211.123 是否匹配,最初为 204.67.211.123\r\ndebug3:/etc/ssh/ssh_config.d/05-redhat.conf 第 3 行:不匹配‘final’\r\ndebug2:未找到匹配项\r\ndebug3:/etc/ssh/ssh_config.d/05-redhat.conf 第 5 行:包括文件 /etc/crypto-policies/back-ends/openssh.config 深度 1(仅解析)\r\ndebug1:正在读取配置数据 /etc/crypto-policies/back-ends/openssh.config\r\ndebug3:gss kex 名称 ok:[gss-gex-sha1-,gss-group14-sha1-]\r\ndebug3:kex 名称 ok:[curve25519-sha256,[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2… 任务路径:/tmp/awx_10051_46nhtsu2/project/tenable-nessus-agent-test.yml:4 <204.67.211.106> 为用户建立 SSH 连接:root <204.67.211.106> SSH:EXEC sshpass -d10 ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/tmp/awx_10051_46nhtsu2/cp/860fdfa239 204.67.211.106 '/bin/sh -c '"'"'echo ~root && sleep 0'"'"'' <204.67.211.106> (255, b'', b'OpenSSH_8.0p1, OpenSSL 1.1.1c FIPS 2019 年 5 月 28 日\r\ndebug1:正在读取配置数据 /etc/ssh/ssh_config\r\ndebug3:/etc/ssh/ssh_config 第 51 行:包括文件 /etc/ssh/ssh_config.d/05-redhat.conf 深度 0\r\ndebug1:正在读取配置数据 /etc/ssh/ssh_config.d/05-redhat.conf\r\ndebug2:检查 \'final all\' 主机 204.67.211.106 是否与最初 204.67.211.106 匹配\r\ndebug3: /etc/ssh/ssh_config.d/05-redhat.conf 第 3 行:不匹配 \'final\'\r\ndebug2:未找到匹配项\r\ndebug3:/etc/ssh/ssh_config.d/05-redhat.conf 第 5 行:包括文件 /etc/crypto-policies/back-ends/openssh.config 深度 1(仅解析)\r\ndebug1:读取配置数据 /etc/crypto-policies/back-ends/openssh.config\r\ndebug3:gss kex 名称正常:[gss-gex-sha1-,gss-group14-sha1-]\r\ndebug3:kex 名称正常:[curve25519-sha256,[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1]\r\ndebug1:配置请求最终匹配通过\r\ndebug2:resolve_canonicalize:主机名 204.67.211.106 是地址\r\ndebug1:重新解析配置\r\ndebug1:读取配置数据 /etc/ssh/ssh_config\r\ndebug3:/etc/ssh/ssh_config 第 51 行:包括文件/etc/ssh/ssh_config.d/05-redhat.conf 深度 0\r\ndebug1:正在读取配置数据 /etc/ssh/ssh_config.d/05-redhat.conf\r\ndebug2:检查 \'final all\' 主机 204.67.211.106 是否与原先的 204.67.211.106 匹配 \r\ndebug3:/etc/ssh/ssh_config.d/05-redhat.conf 第 3 行:匹配 \'final\' \r\ndebug2:找到匹配 \r\ndebug3:/etc/ssh/ssh_config.d/05-redhat.conf 第 5 行:包括文件 /etc/crypto-policies/back-ends/openssh.config 深度 1\r\ndebug1:正在读取配置数据/etc/crypto-policies/back-ends/openssh.config\r\ndebug3: gss kex 名称 ok: [gss-gex-sha1-,gss-group14-sha1-]\r\ndebug3: kex 名称 ok: [curve25519-sha256,[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1]\r\ndebug1:自动多路复用:尝试现有主服务器\r\ndebug1:控制套接字“/tmp/awx_10051_46nhtsu2/cp/860fdfa239”不存在\r\ndebug2:ssh_connect_direct\r\ndebug1:连接到 204.67.211.106 [204.67.211.106] 端口 22。\r\ndebug2:fd 3 设置 O_NONBLOCK\r\ndebug1:fd 3 清除 O_NONBLOCK\r\ndebug1:连接已建立。\r\ndebug3:超时:连接后剩余 9990 毫秒\r\ndebug1:身份文件 /root/.ssh/id_rsa 类型 -1\r\ndebug1:身份文件 /root/.ssh/id_rsa-cert 类型 -1\r\ndebug1:身份文件 /root/.ssh/id_dsa 类型 -1\r\ndebug1:身份文件 /root/.ssh/id_dsa-cert 类型 -1\r\ndebug1:身份文件 /root/.ssh/id_ecdsa 类型 -1\r\ndebug1:身份文件 /root/.ssh/id_ecdsa-cert 类型 -1\r\ndebug1:身份文件/root/.ssh/id_ed25519 类型 -1\r\ndebug1: 身份文件 /root/.ssh/id_ed25519-cert 类型 -1\r\ndebug1: 身份文件 /root/.ssh/id_xmss 类型 -1\r\ndebug1: 身份文件 /root/.ssh/id_xmss-cert 类型 -1\r\ndebug1: 本地版本字符串 SSH-2.0-OpenSSH_8.0\r\ndebug1: 远程协议版本 2.0,远程软件版本 OpenSSH_8.0\r\ndebug1: 匹配:OpenSSH_8.0 pat OpenSSH* compat 0x04000000\r\ndebug2: fd 3 设置 O_NONBLOCK\r\ndebug1: 以 \'root\' 身份向 204.67.211.106:22 进行身份验证\r\ndebug3: hostkeys_foreach:读取文件“/root/.ssh/known_hosts”\r\ndebug3:record_hostkey:在文件/root/.ssh/known_hosts:120\r\ndebug3中发现密钥类型 ECDSA:load_hostkeys:从 204.67.211.106\r\ndebug3 加载了 1 个密钥:order_hostkeyalgs:首选 hostkeyalgs:[电子邮件保护],[电子邮件保护],[电子邮件保护],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521\r\ndebug3: 发送数据包:类型 20\r\ndebug1: SSH2_MSG_KEXINIT 已发送\r\ndebug3: 接收数据包:类型 20\r\ndebug1: SSH2_MSG_KEXINIT 已接收\r\ndebug2: 本地客户端 KEXINIT 提议\r\ndebug2: KEX 算法:curve25519-sha256,[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-31\r\ndebug1:服务器主机密钥:ssh-ed25519 SHA256:0K2ICbjw/u+cp4lDsJ9BUbNelTV+G+WjHjDilpLspAY\r\ndebug3:hostkeys_foreach:读取文件“/root/.ssh/known_hosts”\r\ndebug3:record_hostkey:在文件/root/.ssh/known_hosts:120中找到密钥类型ECDSA\r\ndebug3:load_hostkeys:从中加载了1个密钥204.67.211.106\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ 警告:远程主机标识已更改! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n可能有人正在做一些恶意的事情!\r\n现在可能有人正在窃听您(中间人攻击)!\r\n主机密钥也可能刚刚被更改。\r\n远程主机发送的 ED25519 密钥的指纹为\nSHA256:0K2ICbjw/u+cp4lDsJ9BUbNelTV+G+WjHjDilpLspAY。\r\n请联系您的系统管理员。\r\n在 /root/.ssh/known_hosts 中添加正确的主机密钥以摆脱此消息。\r\n有问题的 ECDSA 密钥/root/.ssh/known_hosts:120\r\n密码验证已禁用,以避免中间人攻击。\r\n键盘交互式验证已禁用,以避免中间人攻击。\r\ndebug3:发送数据包:类型 21\r\ndebug2:set_newkeys:模式 1\r\ndebug1:在 4294967296 个块后重新输入密钥\r\ndebug1:已发送 SSH2_MSG_NEWKEYS\r\ndebug1:需要 SSH2_MSG_NEWKEYS\r\ndebug3:接收数据包:类型 21\r\ndebug1:已收到 SSH2_MSG_NEWKEYS\r\ndebug2:set_newkeys:模式 0\r\ndebug1:在 4294967296 个块后重新输入密钥\r\ndebug1:将尝试密钥: /root/.ssh/id_rsa \r\ndebug1: 将尝试密钥:/root/.ssh/id_dsa \r\ndebug1: 将尝试密钥:/root/.ssh/id_ecdsa \r\ndebug1: 将尝试密钥:/root/.ssh/id_ed25519 \r\ndebug1: 将尝试密钥:/root/.ssh/id_xmss \r\ndebug2: pubkey_prepare:完成\r\ndebug3: 发送数据包:类型 5\r\ndebug3: 接收数据包:类型 7\r\ndebug1: SSH2_MSG_EXT_INFO 已接收\r\ndebug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>\r\ndebug3:接收数据包:类型 6\r\ndebug2:service_accept:ssh-userauth\r\ndebug1:已接收 SSH2_MSG_SERVICE_ACCEPT\r\ndebug3:发送数据包:类型 50\r\ndebug3:接收数据包:类型 51\r\ndebug1:可以继续的身份验证:publickey、gssapi-keyex、gssapi-with-mic、password\r\ndebug3:重新开始,传递了不同的列表publickey、gssapi-keyex、gssapi-with-mic、密码\r\ndebug3:首选 gssapi-with-mic、publickey\r\ndebug3:authmethod_lookup gssapi-with-mic\r\ndebug3:剩余首选:publickey\r\ndebug3:authmethod_is_enabled gssapi-with-mic\r\ndebug1:下一个身份验证方法:gssapi-with-mic\r\ndebug1:未指定的 GSS 故障。次要代码可能会提供更多信息\n没有可用的 Kerberos 凭据:持久密钥环名称中的 UID 无效\n\n\r\ndebug1:未指定的 GSS 故障。次要代码可能会提供更多信息\n没有可用的 Kerberos 凭据:持久密钥环名称中的 UID 无效\n\n\r\ndebug2:我们没有发送数据包,禁用方法\r\ndebug3:authmethod_lookup publickey\r\ndebug3:剩余的首选:\r\ndebug3:authmethod_is_enabled publickey\r\ndebug1:下一个身份验证方法:publickey\r\ndebug1:尝试私钥:/root/.ssh/id_rsa\r\ndebug3:没有这样的身份:/root/.ssh/id_rsa:没有这样的文件或目录\r\ndebug1:尝试私钥:/root/.ssh/id_dsa\r\ndebug3:没有这样的身份:/root/.ssh/id_dsa:没有这样的文件或目录\r\ndebug1:尝试私钥:/root/.ssh/id_ecdsa\r\ndebug3:没有这样的身份:/root/.ssh/id_ecdsa:没有这样的文件或目录\r\ndebug1:尝试私钥: /root/.ssh/id_ed25519\r\ndebug3: 没有这样的身份:/root/.ssh/id_ed25519:没有这样的文件或目录\r\ndebug1:尝试私钥:/root/.ssh/id_xmss\r\ndebug3:没有这样的身份:/root/.ssh/id_xmss:没有这样的文件或目录\r\ndebug2:我们没有发送数据包,禁用方法\r\ndebug1:没有其他可尝试的身份验证方法。\r\[电子邮件保护]:权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic、密码)。\r\n')
有人能给我指出正确的方向吗?
答案1
以防有人遇到这种情况...我已经调查过known_hosts文件,但没有在正确的位置寻找它。
有问题的 known_hosts 文件位于 AWX_TASK 容器 /root/.ssh/known_hosts 内。第 120 行有冲突的 ed25519 键。我删除了它。重新部署角色,角色部署成功。由于我们正在重复使用 IP,我们预计随着时间的推移会再次遇到此问题;我们很惊讶我们之前没有遇到过。我们可能会在将来编写一个脚本来清除 .ssh/known_hosts。