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

Ansible连接EXOS设备SSH密钥算法不匹配问题求解

问题:Ansible连接EXOS设备时SSH密钥算法不匹配

环境与Playbook

我用以下Ansible Playbook在Extreme Networks EXOS 16.2.5.4设备上创建VLAN:

---
- name: Create VLAN
  hosts: exos_device
  connection: ansible.netcommon.network_cli
  vars:
    ansible_user: admin
    ansible_password: password
    ansible_network_os: community.network.exos
  tasks:
  - name: Create VLAN 4050
    community.network.exos_config:
      lines:
        - create vlan TESTVLAN tag 4050
      match: exact
      save_when: always

报错信息

执行时持续出现SSH连接失败,错误如下:

fatal: [10.12.2.10]: FAILED! => {
    "changed": false,
    "module_stderr": "ssh connection failed: ssh connect failed: kex error : no match for method server host key algo: server [ssh-rsa], client [rsa-sha2-512,rsa-sha2-256,ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256]",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error"
}

错误表明Ansible控制端与EXOS设备的主机密钥算法不匹配:服务器仅支持ssh-rsa,但客户端默认支持的算法列表中不包含该选项。

已尝试的无效配置

我曾在ansible.cfg中添加以下配置,但未解决问题:

[defaults]
inventory = inventory.ini
ssh_args = -oKexAlgorithms=ssh-rsa

解决方案

之前的配置错误在于参数选择:报错是主机密钥算法不匹配,而非密钥交换算法(KexAlgorithms)。正确的做法是指定HostKeyAlgorithms参数,以下三种方式任选其一:

方式1:修改ansible.cfg全局配置

在ansible.cfg中更新ssh_args,添加HostKeyAlgorithms=+ssh-rsa(+表示在客户端原有算法列表中追加,而非替换):

[defaults]
inventory = inventory.ini
ssh_args = -oHostKeyAlgorithms=+ssh-rsa

方式2:在Inventory中针对单设备配置

在inventory.ini中为目标EXOS设备单独添加SSH参数:

[exos_device]
10.12.2.10 ansible_ssh_common_args="-oHostKeyAlgorithms=+ssh-rsa"

方式3:在Playbook的vars中配置

直接在Playbook的变量块中指定SSH参数:

---
- name: Create VLAN
  hosts: exos_device
  connection: ansible.netcommon.network_cli
  vars:
    ansible_user: admin
    ansible_password: password
    ansible_network_os: community.network.exos
    ansible_ssh_common_args: "-oHostKeyAlgorithms=+ssh-rsa"
  tasks:
  - name: Create VLAN 4050
    community.network.exos_config:
      lines:
        - create vlan TESTVLAN tag 4050
      match: exact
      save_when: always

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:26