现象
现场很迷惑的一种:
display stelnet server status看着是 Enable- 管理 IP 也能 ping 通
- 用户名密码你也觉得没问题
- 可是 SecureCRT /
ssh就是握手失败、连不上,或弹一堆协议错误
同事说:「服务都开了啊。」
你说:「开了又怎样,门开了但没钥匙,照样进不去。」
对,缺的往往就是 本地密钥。

环境
| 项目 | 内容 |
|---|---|
| 设备 | 华为交换机(接入/汇聚常见 S 系列) |
| 已确认 | stelnet 服务已 enable,管理 IP 可达 |
| 可疑点 | 从未执行过密钥生成,或升级/清空后密钥丢失 |
为什么服务开了还不够
SSH 握手需要设备侧有一对密钥(常见 RSA,部分版本用 ECC)。
- stelnet server enable = 告诉设备「我愿意提供 SSH 服务」
- rsa local-key-pair create = 真正把钥匙造出来
只做前半句,等于饭店挂了营业灯,厨房却没开火。
排查步骤
1. 再确认服务真开着
<Huawei> display stelnet server status
不是 Enable,先回去开:
system-view
stelnet server enable
是 Enable,继续往下。
2. 看有没有本地密钥
<Huawei> display rsa local-key-pair public
有公钥信息输出 → 密钥一般在,转向查用户 / VTY / ACL(见系列 01、06、07)。
提示没有密钥 / 空 / 报错 → 就是这篇的主角,往下生成。
不同 VRP 版本提示语略有差异,核心是:看得到本机公钥,才算有钥匙。
3. 生成 RSA 密钥
<Huawei> system-view
[Huawei] rsa local-key-pair create
按提示选择密钥长度(常见 2048),确认生成。
生成过程可能要等几秒到几十秒,别急着狂按回车打断。
部分版本支持 ECC,例如:
[Huawei] ecc local-key-pair create
思路相同:先有密钥,再谈登录。
4. 再验证一次
[Huawei] display rsa local-key-pair public
能看到公钥后,电脑重试:
ssh admin@192.168.10.10
5. 保存(别忘)
return
save
有的环境重启后行为与版本/存储有关,养成 save 习惯最省事。
根因一句话
stelnet 只负责“开门营业”,RSA/ECC 本地密钥才是 SSH 握手的钥匙;没生成密钥时,服务显示开启也连不上。
可复用动作
system-view
stelnet server enable
rsa local-key-pair create
display rsa local-key-pair public
quit
save
复盘
下次再遇「服务开了却 SSH 失败」:
- 先
display stelnet server status - 立刻
display rsa local-key-pair public - 没有就
rsa local-key-pair create - 仍不行再查用户 service-type、VTY、ACL
—— 小灯|小灯网工库
https://www.xdnetops.cn
