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

Netmiko密钥认证在Cisco N7K设备上失败的问题求助

解决Netmiko SSH密钥认证Cisco N7K失败的问题

环境信息

  • Python 3.8.10
  • netmiko 4.1.2

问题描述

使用相同的SSH密钥认证配置可正常连接Cisco N9K设备,但连接Cisco N7K时触发NetmikoAuthenticationException认证失败错误。已验证用户名、SSH密钥文件有效性,且通过用户名+密码认证可正常连接N7K。

解决建议

1. 手动加载密钥并传递参数

N7K的SSH服务对密钥加载的兼容性可能与N9K存在差异,尝试手动通过Paramiko加载密钥,再传入Netmiko配置:

from netmiko import ConnectHandler
from paramiko import RSAKey

# 手动加载带密码的私钥
private_key = RSAKey.from_private_key_file('~/.ssh/id_rsa', password='Cisco123')

n7k_config = {
    "device_type": "cisco_nxos",
    "host": "10.1.1.20",
    "username": "admin",
    "use_keys": True,
    "pkey": private_key
}
target_con = ConnectHandler(**n7k_config)

2. 指定SSH兼容算法

部分N7K设备的SSH服务仅支持特定密钥算法,可在配置中指定允许的公钥算法:

n7k_config = {
    "device_type": "cisco_nxos",
    "host": "10.1.1.20",
    "username": "admin",
    "use_keys": True,
    "key_file":"~/.ssh/id_rsa",
    "passphrase": "Cisco123",
    "allowed_algorithms": {
        'pubkeys': ['ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512']
    }
}
target_con = ConnectHandler(**n7k_config)

3. 检查N7K设备端配置

  • 执行show ssh user admin,确认设备上该用户关联的公钥与本地id_rsa.pub内容完全一致
  • 执行show ip ssh,查看设备支持的SSH算法列表,确保本地密钥类型在支持范围内
  • 若设备仅支持SHA-1签名的RSA密钥,可重新生成兼容密钥:ssh-keygen -t rsa -b 2048 -m PEM

4. 调整Paramiko版本

Netmiko依赖的Paramiko版本可能与N7K存在兼容性问题,尝试降级到稳定兼容版本:

pip install paramiko==2.12.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:15:36