• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

S6520x-26c-si

1小时前提问
  • 0关注
  • 0收藏,41浏览
粉丝:0人 关注:0人

问题描述:

我开启了ssh远程登录管理,但是客户端报错 no match host key found their offer ssh-rsa,ssh-dad 按照提示更改试用-leagacy参数 ssh登陆,又报 error in libcrypto invalid digest

4 个回答
Xcheng 九段
粉丝:136人 关注:3人

下个ssh工具吧

如putty、xshell等

暂无评论

粉丝:21人 关注:0人

这两报错是连环的,根因在 S6520X-26C-SI(Comware V7,SI 档算法支持偏老)的 SSH server 只扔了 ssh-rsa(RSA-SHA1) + ssh-dss(你打的 ssh-dad 就是 ssh-dss 笔误),而你的客户端 OpenSSH 版本偏高(8.8+ 默认砍 ssh-rsa,9.x 连 SHA1 的 libcrypto digest 都进一步收紧),所以走出了下面这个死循环:
客户端连 → 协商:服务端只给 ssh-rsa/ssh-dss → 客户端拒(no match host key)
你加 -legacy / +ssh-rsa 强开 → 走到密钥验证阶段 → libcrypto 发现 SHA1 摘要被禁 → invalid digest
ssh-dss在 OpenSSH 9.x 更是彻底移除,legacy 也救不回来,所以你那句 -legacy顶多让 ssh-rsa 过协商,但 digest 层还是挂。
🔍 先在设备上确认一下现状
display version # 看 Comware 版本(SI 档多半 R27 之前,SSH 算法弱)
display ssh2 algorithm # 看 server 当前扔哪些 host-key / kex / cipher
display public-key local # 看本地存的 host-key 类型和长度
如果 display ssh2 algorithm里 host-key 一行只有 ssh-rsa,ssh-dss,就坐实了上面的判断。
🛠 根治:设备侧把算法提上来(推荐)
S6520X-SI 虽然是入门款,但 Comware V7 R27xx+ 的 SSH 是支持 rsa-sha2-256/rsa-sha2-512和 ecdsa的,关键是老设备出厂 RSA 密钥是 SHA1 签的,即使算法列表写了 rsa-sha2 也没用,得重生成密钥。
步骤 1:重生成 host-key(核心)
system-view
# 先把老的 DSA 干掉(ssh-dss 在 OpenSSH 9.x 已死,留着还干扰协商)
undo public-key local create dsa

# RSA 重生成,2048 或 4096(SI 档 2048 够用,新 V7 会自动用 SHA256 签)
public-key local create rsa 2048

# 顺手再起一个 ecdsa(OpenSSH 全版本都认,最稳)
public-key local create ecdsa nistp256
步骤 2:显式把 host-key 算法列表拉全
ssh2 algorithm host-key rsa-sha2-256 rsa-sha2-512 ssh-rsa ecdsa
💡 顺序有讲究:把 rsa-sha2-256放最前,客户端优先走 SHA2;ssh-rsa放后面兜底(给老客户端);ecdsa也加上,双保险。
步骤 3:顺手把 kex / cipher 也提一下(避免下一步又卡)
ssh2 algorithm key-exchange ecdh-sha2-nistp256 ecdh-sha2-nistp384 dh-group14-sha1
ssh2 algorithm cipher aes256-gcm aes128-gcm aes256-ctr aes128-ctr
ssh2 algorithm mac hmac-sha2-256 hmac-sha2-512
步骤 4:确认 SSH server 跑的是 V2
ssh server enable
# 如果之前配过 ssh1 兼容,建议关掉
undo ssh server compatible-ssh1x enable
然后 display ssh2 algorithm再看一眼,host-key 行里出现 rsa-sha2-256,rsa-sha2-512,ssh-rsa,ecdsa就对了,客户端不用 -legacy也能直连。
🪛 如果设备版本太老(R25xx 之前 SI),不支持 rsa-sha2
S6520X-26C-SI 如果 Comware 还停在 R25/R26 早期,ssh2 algorithm host-key命令可能根本不接受 rsa-sha2-*,那设备侧无解,只能客户端侧兜底:
Linux / macOS 客户端 ~/.ssh/config
Host 192.168.x.x
HostKeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedAlgorithms +ssh-rsa
然后 ssh admin@x.x.x.x直连,不用 -legacy。
Windows OpenSSH 特别注意
Win10/11 自带 OpenSSH 8.1–9.x 不支持 +追加语法,必须写完整列表否则直接语法错:
Host *
HostKeyAlgorithms ssh-rsa,ssh-dss,rsa-sha2-256,rsa-sha2-512,ecdsa-sha2-nistp256
PubkeyAcceptedKeyTypes ssh-rsa,rsa-sha2-256,rsa-sha2-512
文件在 %USERPROFILE%\.ssh\config,没有就建一个。
⚠️ ssh-dss在 OpenSSH 9.x 客户端已经编编译期移除,Windows 如果跑的是 9.x(Win11 23H2+ 个别版本),ssh-dss写进去也救不回来——所以设备侧务必 undo public-key local create dsa把 DSA 摘掉,免得服务端还把 ssh-dss 扔出来干扰协商。
✅ 给你的推荐顺序
设备上 display version先看 Comware 号——S6520X-26C-SI 如果能升到 R2719+(你前面问 S6890 是 R2719P01,同代 S6520X 也有 R2719Pxx),升完 SSH 算法原生支持 rsa-sha2,是最干净的
升不了就按上面"步骤 1-4"重生成 rsa 2048 + ecdsa,显式配 ssh2 algorithm host-key——90% 情况这就好了,客户端不用任何参数
设备实在太老命令不支持,就客户端 ~/.ssh/config兜底,但记得设备侧把 DSA 关掉

暂无评论

粉丝:22人 关注:2人

一、报错完整原因拆解
1. 第一报错 no match host key found their offer ssh-rsa
新版 OpenSSH(8.8 及以上)默认彻底废弃ssh-rsa签名算法(SHA1 哈希),S6520X 老固件仅生成 ssh-rsa 主机密钥,客户端不协商直接拒绝连接。
2. 追加-o HostKeyAlgorithms=+ssh-rsa后报 error in libcrypto invalid digest
只放开主机密钥类型不够,交换机 SSH 服务仅支持 SHA1 类弱 KEX/hmac 算法,新版 OpenSSL 禁用 SHA1 摘要校验,协商时摘要不匹配直接抛出 libcrypto 摘要错误;单纯加 legacy 参数无法补齐全套兼容算法。
核心本质
S6520X-26C-SI 旧固件 SSH 仅提供老旧 SHA1 套件:
主机密钥:ssh-rsa(SHA1 签名)
密钥交换:diffie-hellman-group14-sha1 /group-exchange-sha1
校验 MAC:hmac-sha1
现代 OpenSSH/OpenSSL 默认移除所有 SHA1 相关算法,双向算法集无交集导致连接失败。
方案一:交换机侧永久根治(推荐,一劳永逸,不用客户端加复杂参数)
步骤 1:生成现代 RSA-sha2 主机密钥(交换机默认只有 ssh-rsa,缺少 sha2 签名密钥)
plaintext
system-view
# 删除旧ssh-rsa主机密钥
undo public-key local create rsa
# 生成2048位RSA密钥,支持rsa-sha2-256/512现代签名(解决invalid digest)
public-key local create rsa modulus 2048
步骤 2:SSH 服务启用全套现代强算法(兼容新版客户端)
plaintext
# 1. 密钥交换KEX:启用椭圆曲线sha2算法,淘汰sha1 DH
ssh server kex-algorithm ecdh-sha2-nistp256 ecdh-sha2-nistp384 diffie-hellman-group14-sha256
# 2. 加密套件:仅启用CTR/GCM强加密,移除CBC弱加密
ssh server encryption-algorithm aes-128-ctr aes-256-ctr aes-128-gcm aes-256-gcm
# 3. MAC校验:强制sha2哈希,彻底解决invalid digest摘要报错
ssh server hmac-algorithm hmac-sha2-256 hmac-sha2-512
# 4. 开启SSH服务,关闭老旧ssh-dss弱密钥
ssh server enable
undo public-key local create dsa
步骤 3:保存配置,重启 SSH 服务生效
plaintext
save
# 重启SSH服务,断开现有连接
undo ssh server enable
ssh server enable
校验配置
plaintext
display ssh server algs
输出能看到rsa-sha2-256、ecdh-sha2-nistp256、hmac-sha2-256即为配置成功,客户端无需任何 legacy 参数可直接登录。
补充:固件升级兜底
若配置后仍报错,说明设备固件版本过低,底层不支持 sha2 算法:
官网下载 S6520X-26C-SI 最新 Comware V7 固件升级,新版原生支持现代 SSH 算法套件。
方案二:客户端临时兼容方案(应急登录,不推荐长期使用)
必须一次性补齐主机密钥、KEX 交换、加密、MAC 哈希四类兼容参数,只加 HostKeyAlgorithms 会报 libcrypto 摘要错误:
Linux/macOS 完整登录命令(复制直接用)
bash
运行
ssh -o HostKeyAlgorithms=+ssh-rsa \
-o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o KexAlgorithms=+diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 \
-o MACs=+hmac-sha1 \
-o Ciphers=+aes128-cbc,aes256-cbc \
admin@交换机IP
Windows PowerShell 同参数写法
powershell
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa -o KexAlgorithms=+diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 -o MACs=+hmac-sha1 -o Ciphers=+aes128-cbc,aes256-cbc admin@交换机IP
永久客户端兼容(本机所有 SSH 连接生效)
编辑~/.ssh/config,填入交换机 IP 段:
plaintext
Host 192.168.*
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
KexAlgorithms +diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
MACs +hmac-sha1
Ciphers +aes128-cbc,aes256-cbc
三、常见踩坑补充
只配置 HostKeyAlgorithms=+ssh-rsa 必报 invalid digest
客户端仅放开主机密钥,但 KEX/MAC 仍使用 sha2 算法,交换机不支持,摘要校验失败,必须全套补齐兼容参数。
生成 RSA 密钥后仍提示 ssh-rsa
ssh-rsa 是密钥类型,rsa-sha2-256是签名算法;生成 2048 位 RSA 密钥后客户端会自动协商 sha2 签名,不再触发 SHA1 摘要报错。
安全合规提示
客户端兼容方案启用大量 SHA1 弱算法,等保 / 安全扫描会判定高危漏洞;优先采用交换机侧配置现代 SSH 算法方案,兼顾兼容性与安全。
验证客户端支持算法
bash
运行
# 查看支持的主机密钥算法
ssh -Q HostKeyAlgorithms
# 查看支持的MAC哈希
ssh -Q MACs
# 查看支持的密钥交换
ssh -Q KexAlgorithms

暂无评论

粉丝:23人 关注:1人

这个问题是由于你的SSH客户端(比如Linux或macOS上的OpenSSH)版本较新,而S6520X-26C-SI交换机支持的加密算法较旧,两者在协商时无法达成一致导致的

🔍 问题根因:新客户端 vs 旧设备

  • 你的交换机 (S6520X-26C-SI):作为SSH服务端,它只提供了 ssh-rsa 和 ssh-dss 这两种老旧的主机密钥算法。你提到的 ssh-dad 应该是 ssh-dss 的笔误。

  • 你的SSH客户端 (OpenSSH):为了安全,从OpenSSH 8.8版本开始,默认禁用了不安全的 ssh-rsa 算法。在OpenSSH 9.x版本中,对相关算法的支持则更为严格

所以,当你尝试连接时:

  1. 客户端发起连接请求。

  2. 交换机回应:“我只支持 ssh-rsa 和 ssh-dss。”

  3. 客户端拒绝:“这些算法不安全,我不接受。”

  4. 最终报错:no match host key found

你尝试使用 --legacy 参数,虽然让客户端勉强接受了 ssh-rsa,但在后续的密钥验证阶段,又因为客户端禁用了SHA1摘要算法,而触发了 error in libcrypto invalid digest 的错误

🛠️ 解决方案:二选一

你可以从客户端临时兼容,或从设备侧永久修复。推荐在交换机上进行配置,以彻底解决问题。

方案一:客户端临时规避(快速恢复)

如果急需连接,可以在SSH命令中临时指定允许使用 ssh-rsa 算法

bash
ssh -o HostKeyAlgorithms=+ssh-rsa 用户名@交换机IP

如果需要长期使用,可以修改客户端的SSH配置文件 ~/.ssh/config

text
Host 交换机IP HostKeyAlgorithms +ssh-rsa

注意:这只是临时方案,会降低连接安全性。

方案二:交换机侧永久修复(推荐)

这是根本解决方法,通过在交换机上升级和配置加密算法,兼顾安全与兼容

  1. 登录交换机:通过Console口或其他方式登录到交换机命令行界面。

  2. 进入系统视图

    bash
    system-view
  3. 重新生成RSA主机密钥:这是关键一步,新的Comware V7系统会自动使用更安全的SHA256签名

    bash
    undo public-key local create dsa public-key local create rsa 2048
  4. (可选)生成ECDSA密钥ecdsa 算法被所有新版本OpenSSH客户端支持,非常稳定

    bash
    public-key local create ecdsa nistp256
  5. 指定主机密钥算法列表:明确告知客户端交换机支持的算法,并将更安全的算法放在前面

    bash
    ssh2 algorithm host-key rsa-sha2-256 rsa-sha2-512 ssh-rsa ecdsa
  6. (可选)优化密钥交换和加密算法:避免后续出现其他算法不兼容的问题

    bash
    ssh2 algorithm key-exchange ecdh-sha2-nistp256 ecdh-sha2-nistp384 dh-group14-sha1 ssh2 algorithm cipher aes256-gcm aes128-gcm aes256-ctr aes128-ctr ssh2 algorithm mac hmac-sha2-256 hmac-sha2-512
  7. 确认配置并保存

    • 使用 display ssh2 algorithm 命令检查配置是否生效

    • 使用 save 命令保存配置。

完成交换机侧的配置后,再用你的SSH客户端尝试连接,问题应该就能解决了。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明