各位大佬好,请教下交换机双因子认证是不是有Bug?目前测试单纯密码或密钥是可以ssh认证登录的,状况是python通过SSH连接,SFTP下载交换机的配置文件到本地,以下为交换机的版本信息
H3C Comware Software, Version 7.1.070, Release 6343P08
Copyright (c) 2004-2022 New H3C Technologies Co., Ltd. All rights reserved.
H3C S5048PV3-EI uptime is 0 weeks, 3 days, 17 hours, 44 minutes
Last reboot reason : User reboot
Boot image: flash:/s5000v3_ei-cmw710-boot-r6343p08.bin
Boot image version: 7.1.070, Release 6343P08
Compiled Sep 21 2022 11:00:00
System image: flash:/s5000v3_ei-cmw710-system-r6343p08.bin
System image version: 7.1.070, Release 6343P08
Compiled Sep 21 2022 11:00:00
Slot 1:
Uptime is 0 weeks,3 days,17 hours,44 minutes
S5048PV3-EI with 1 Processor
BOARD TYPE: S5048PV3-EI
DRAM: 512M bytes
FLASH: 256M bytes
PCB 1 Version: VER.A
Bootrom Version: 146
CPLD 1 Version: 001
Release Version: H3C S5048PV3-EI-6343P08
Patch Version : None
Reboot Cause : UserReboot
[SubSlot 0] 48GE+4SFP
基于你的描述和软件版本,这很可能是一个已知问题或配置细节未妥善处理,而非设备本身的Bug。
我整理了一份排查清单,你可以对照着逐步检查,大概率能定位到原因。
软件版本已知问题:你当前使用的 Release 6343P08 版本,在H3C的知了社区中,已有用户反馈过类似的双因子认证(密码+公钥)在SFTP场景下存在问题。这是需要优先考虑的。
Python库认证逻辑问题:paramiko 等库在实现双因子认证时,对“同时提供密码和公钥”的处理方式可能不符合交换机的预期。有时库可能默认只使用一种认证方式。
交换机配置不完整:可能遗漏了关键步骤,例如没有正确地将公钥与SSH用户关联,或认证类型未设置为 password-publickey。
客户端/服务端SSH版本或算法协商失败:尽管单独认证能成功,但双因子认证可能触发了不同的协商流程,如果算法(如密钥交换算法、加密算法)不匹配,也可能导致连接失败。
建议按照以下顺序操作:
这是解决已知问题最直接的方法。
请登录交换机,逐一核对以下关键配置。
确认SSH用户认证方式:执行 display ssh user-information,确保相应用户的 Authentication-type 字段显示为 password-publickey。
确认公钥已正确导入并关联:
用标准的SSH客户端(如 PuTTY 或 SecureCRT)进行一次手动双因子登录测试。
目的:确认在手动输入密码和加载私钥的情况下,能否成功登录。
结果判断:
如果手动登录也失败:问题基本在交换机侧的配置或版本上。
如果手动登录成功:问题几乎可以肯定是出在你的Python脚本逻辑上。
paramiko)确认同时传递了密码和私钥:在 paramiko 的 connect() 方法中,需要同时指定 password 和 pkey 参数。
检查私钥格式:确保 paramiko 能正确解析你的私钥文件(通常是PEM格式)。如果私钥有密码保护,需要在 from_private_key_file() 方法中提供 password 参数。
登录交换机,执行 display logbuffer 命令,查看是否有SSH认证失败的具体错误信息。这些日志能提供最直接的线索。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论