设备侧的 SSH 公钥认证
公钥认证用密钥对替代口令:客户端持有私钥,设备侧只存对端公钥。自动化巡检脚本与跳板机场景下,它既免去口令交互,也避免把明文口令写进脚本。三厂的流程都是两步——先把对端公钥导入设备,再把公钥绑定到某个 SSH 用户;区别在于存放位置与命令语法完全不同。
基本信息
| 适用平台 | 华为 VRP、思科 IOS、H3C Comware(需 SSH 服务已开启) |
|---|---|
| 华为命令族 | rsa peer-public-key + ssh user assign rsa-key |
| 思科命令族 | ip ssh pubkey-chain(username 下 key-string 或 key-hash) |
| H3C 命令族 | public-key peer + ssh user assign publickey |
| 密钥类型 | 常见 RSA / ECDSA,支持情况随版本与型号不同 |
| 账号建议 | 为自动化单独建账号,不与人工运维账号混用 |
典型使用场景
- 自动化巡检:脚本免密登录采集配置与状态,不需要明文口令落盘
- 跳板机集中运维:堡垒机持私钥统一登录设备,审计记录完整
- 临时口令轮换不停机:换口令不影响已配置好的公钥登录通道
- 高风险设备加固:关闭密码认证后,只有持有私钥的人才进得来
- CI/CD 与网络设备联动:流水线执行配置下发时避免口令泄露面
华为 VRP
华为 VRP
[Huawei] rsa peer-public-key OPS-PC # 命名对端公钥
[Huawei-rsa-public-key] public-key-code begin
(粘贴对端公钥的十六进制编码)
[Huawei-rsa-public-key] public-key-code end
[Huawei] ssh user ops authentication-type rsa # 指定该用户用 rsa 认证
[Huawei] ssh user ops assign rsa-key OPS-PC # 绑定公钥
<Huawei> display ssh server session # 查看当前 SSH 会话思科 IOS
思科 IOS
SW-CORE-01(config)# ip ssh pubkey-chain # 进入公钥链配置
SW-CORE-01(conf-ssh-pubkey)# username ops
SW-CORE-01(conf-ssh-pubkey-user)# key-string
(粘贴公钥文本)
SW-CORE-01(conf-ssh-pubkey-user)# exit
! 也可以只存指纹,减少配置体积:key-hash ssh-rsa <MD5 指纹>
SW-CORE-01(config)# ip ssh server algorithm authentication publickeyH3C Comware
H3C Comware
[H3C] public-key peer OPS-PC # 导入对端公钥
[H3C-pkey-public-key] public-key-code begin
(粘贴对端公钥的十六进制编码)
[H3C-pkey-public-key] public-key-code end
[H3C] ssh user ops service-type stelnet authentication-type publickey assign publickey OPS-PC
<H3C> display public-key peer name OPS-PC # 核对公钥内容三厂模型对照
| 步骤 | 华为 VRP | 思科 IOS | H3C Comware |
|---|---|---|---|
| 导入公钥 | rsa peer-public-key 名称 | ip ssh pubkey-chain | public-key peer 名称 |
| 公钥格式 | 设备侧粘十六进制编码 | 粘公钥文本或只存指纹 | 设备侧粘十六进制编码 |
| 绑定用户 | ssh user assign rsa-key | pubkey-chain 下 username | ssh user assign publickey |
| 查看 | display rsa peer-public-key | show ip ssh pubkey-chain | display public-key peer |
粘贴格式是最容易出问题的一环:华为/H3C 需要的是公钥的十六进制编码(由客户端工具转换),不是 id_rsa.pub 的文本行;思科则接受文本行或指纹。先确认对端平台要哪种格式,再导出。