Nornir Netmiko连接AWS EC2 Cisco IOS-XE路由器SSH密钥认证失败如何解决?
问题原因及解决方法
- 核心配置错误:你使用
nornir_netmiko插件执行任务,但是配置的是paramiko连接的参数,两套连接插件独立不共享配置,因此你加的密钥认证参数完全没有生效。 - 额外潜在问题:报错日志中显示的目标设备IP是
3.121.222.37,和你资产清单中配置的18.158.60.42不一致,需先确认资产清单的IP配置是否正确。
正确配置方案
替换原有资产清单的配置,将密钥认证参数配置到netmiko连接的配置项中即可:
--- Europe-Cisco-Site1: hostname: "18.158.60.42" username: "ec2-user" platform: "cisco_xe" groups: - cisco connection_options: netmiko: port: 22 extras: use_keys: True key_file: "/home/coder/.ssh/id_rsa" # 如果你的私钥设置了密码,补充下面的参数 # passphrase: "你的私钥密码"
注意删除原有配置中的空
password字段,避免Netmiko优先尝试密码认证,延长认证时间或者直接认证失败。
可选优化及排查项
- 如果你有多台同类型设备,可以把上面的
connection_options配置写到cisco组的配置中,不需要逐台重复配置。 - 确认你的私钥文件
/home/coder/.ssh/id_rsa权限为600,且属主为运行脚本的用户,权限过高会导致SSH拒绝读取私钥。 - 如果仍有问题,可以在netmiko的extras中添加
session_log: "netmiko.log"开启调试日志,查看更详细的认证失败原因。
内容的提问来源于stack exchange,提问作者Shepardos
相关产品推荐
相关产品推荐

