首页/网络/网络设备配置速查/SSH 公钥认证配置(免密登录)
设备开局与基础配置61 条

SSH 公钥认证配置(免密登录)

自动化巡检与跳板场景用公钥替代口令:三厂都是“导入对端公钥 + 用户绑定公钥”两步,但存放位置与语法完全不同。

网络设备配置速查网络更新于 2026-10-13

设备侧的 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 publickey

H3C 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思科 IOSH3C Comware
导入公钥rsa peer-public-key 名称ip ssh pubkey-chainpublic-key peer 名称
公钥格式设备侧粘十六进制编码粘公钥文本或只存指纹设备侧粘十六进制编码
绑定用户ssh user assign rsa-keypubkey-chain 下 usernamessh user assign publickey
查看display rsa peer-public-keyshow ip ssh pubkey-chaindisplay public-key peer
粘贴格式是最容易出问题的一环:华为/H3C 需要的是公钥的十六进制编码(由客户端工具转换),不是 id_rsa.pub 的文本行;思科则接受文本行或指纹。先确认对端平台要哪种格式,再导出。

易错点

  • 公钥文本多一个换行、空格或少了字符都会导致认证失败,而设备侧通常不报明确错误
  • 密钥类型(RSA / ECDSA)与设备支持范围不匹配,配置能下发但认证协商失败
  • 替换密钥后旧的绑定配置忘记清理,新旧公钥同时存在,排查时容易误判验证结果
  • 把自动化账号的公钥配上管理级权限,等于把整网权限交给脚本所在的主机
  • 只在设备侧配置完成就认为万事大吉,没从客户端实际验证一次登录(用 PreferredAuthentications=publickey 强制验证)

数据来源与参考

  • 华为产品文档:SSH 公钥认证
  • Cisco IOS SSH 公钥认证(pubkey-chain)
  • H3C Comware 7 SSH 用户认证

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌