You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible执行任务时出现PubkeyAcceptedAlgorithms配置错误,非目标主机SSH配置引发问题求助

问题原因分析

你碰到的这个问题核心是Docker容器内的OpenSSH版本和主机的OpenSSH版本不兼容:

  • 你的Ubuntu 22.04主机用的是较新的OpenSSH版本(8.9p1左右),支持PubkeyAcceptedAlgorithms和HostkeyAlgorithms这两个新配置项;
  • 但运行Ansible的Docker镜像里装的是旧版本OpenSSH(比如7.x或8.4以下),这些旧版本根本不认识这两个新配置项。

关键细节:SSH客户端读取~/.ssh/config时,会先解析整个文件的所有配置项——不管你当前连接的是哪个Host,只要文件里有它不认识的选项,就会直接报错终止连接。这就是为什么针对其他主机的配置,会影响到192.168.1.42的Ansible任务执行。

解决方案

最稳妥的修复方式是修改你的~/.ssh/config,把新配置项换成旧版本OpenSSH也支持的兼容写法:

将原来的配置片段:

PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa

替换为:

PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa

这种写法的优势是双向兼容:

  • 主机上的新OpenSSH版本完全识别该配置;
  • Docker容器里的旧OpenSSH版本也能正常解析,不会再触发报错。
验证步骤
  1. 修改完配置后,先在主机上手动测试连接192.168.1.42,确保SSH连接正常;
  2. 重新运行Ansible任务,应该就能成功连接目标主机了。

如果问题仍存在,你可以进入Docker容器确认OpenSSH版本,排查是否是版本兼容问题:

# 替换为你的Ansible容器名称/ID,进入容器
docker exec -it <ansible-container-name> bash
# 查看SSH版本
ssh -V

内容的提问来源于stack exchange,提问作者sineverba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 20:42:37