华为设备的SSH配置主要围绕两个核心部分:生成服务器密钥对 和 配置VTY用户界面的认证方式。

SSH配置完整步骤(通用版)
这是最常用、最完整的配置流程,适用于大多数华为设备。
第1步:进入系统视图
system-view
所有后续的配置命令都需要在系统视图下执行。
第2步:配置设备主机名和域名
SSH协议需要设备有一个主机名和域名来生成唯一的密钥对。
# 设置设备的主机名 sysname Switch_A # 设置设备的域名(公司的域名) domain huawei.com
说明:
sysname和domain是生成RSA或DSA密钥对的前提,如果这两项没有配置,后续生成密钥的命令可能会失败或提示不完整。(图片来源网络,侵删)
第3步:生成服务器密钥对
SSH使用非对称加密,服务器(即你的华为设备)需要生成自己的公钥和私钥,目前推荐使用更安全的 RSA 密钥。
# 生成一个2048位的RSA密钥对 rsa local-key-pair create
执行此命令后,系统会提示:
The key name will be: Switch_A_Huawei.com
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the bits in the modulus[default = 2048]:2048 # 直接回车即可
等待密钥对生成完成,密钥对会以主机名和域名的组合形式自动命名。
第4步:创建AAA认证方案
为了安全,我们需要创建一个本地用户来用于SSH登录,AAA(Authentication, Authorization, Accounting)是华为设备上管理用户认证的标准方式。

# 进入AAA视图 aaa # 创建一个本地用户,并设置认证方式为密码 # 命令格式:local-user <用户名> password irreversible-cipher <密码> local-user admin password irreversible-cipher Admin@123456 # 为该用户分配角色,通常为network-admin(最高权限)或level-15(自定义权限) local-user admin privilege level 15 # 设置该用户的接入类型为SSH local-user admin service-type ssh # 保存用户配置 quit
关键点:
irreversible-cipher表示使用加密后的密文存储密码,比明文更安全。privilege level设置用户权限,15是最高级别。service-type ssh限定了该用户只能通过SSH登录,不能通过Telnet等。
第5步:配置VTY用户界面
VTY(Virtual Type Terminal)是设备用于远程登录的逻辑线路,我们需要配置VTY使用AAA进行认证,并允许SSH协议。
# 进入VTY用户界面视图 user-interface vty 0 4 # 注意:有些设备型号可能支持更多会话,vty 0 14,请根据设备实际情况选择 # 设置认证方式为AAA authentication-mode aaa # 设置协议为只允许SSH(推荐,禁止Telnet以提高安全性) protocol inbound ssh # (可选) 设置用户首次登录后是否需要修改密码 set authentication password-recharge # (可选) 设置登录超时时间,例如5分钟 idle-timeout 5 0 # 退出VTY视图 quit
第6步:保存配置
完成所有配置后,务必保存,否则重启后配置会丢失。
save
系统会提示 [Y/N],输入 Y 并回车。
从客户端使用SSH登录
你可以从一台装有SSH客户端(如Windows的PuTTY、Xshell,或Linux/macOS的终端)的电脑上登录设备了。
假设:
- 设备管理IP地址:
168.1.254 - SSH用户名:
admin - SSH密码:
Admin@123456
在Xshell/PuTTY中的连接信息:
- 主机名/IP地址:
168.1.254 - 端口:
22(SSH默认端口) - 认证方式:使用密码
Admin@123456
登录成功后,你将看到设备的欢迎信息,并可以直接输入命令进行管理。
验证SSH配置
你可以通过以下命令检查SSH的配置状态:
# 查看当前生成的所有密钥对 public-key local-key-pair verbose # 查看SSH服务器的状态信息 display ssh server status # 查看所有通过SSH登录到本地的用户会话 display ssh user-information # 查看当前在线的VTY用户 display users
常见问题与注意事项
-
无法生成密钥对?
- 原因:通常是因为没有配置主机名 (
sysname) 或域名 (domain)。 - 解决:请确保第2步已正确配置。
- 原因:通常是因为没有配置主机名 (
-
SSH连接失败,提示 "Connection refused"?
- 原因:设备上SSH服务未开启或未监听,通常是第5步的
protocol inbound ssh未配置或配置错误。 - 解决:检查VTY配置,确保认证模式为
aaa且协议为ssh。
- 原因:设备上SSH服务未开启或未监听,通常是第5步的
-
SSH连接失败,提示 "Permission denied"?
- 原因:
- 用户名或密码错误。
- AAA用户不存在或权限/服务类型配置错误。
- 客户端IP地址被ACL(访问控制列表)阻止。
- 解决:检查第4步的AAA用户配置,并确认客户端IP是否在允许的网段内。
- 原因:
-
首次登录SSH时,提示 "The server is not authenticated."?
- 原因:这是正常的,因为客户端首次连接时,没有保存过设备的SSH公钥,无法验证服务器的身份。
- 解决:
- 不安全的方法:在SSH客户端(如Xshell)的选项中,找到“不检查主机密钥”或类似选项并勾选。不推荐在生产环境使用。
- 安全的方法:将设备的公钥导出,然后导入到客户端的
known_hosts文件中,具体操作如下:- 在设备上导出公钥:
# 进入系统视图 system-view # 将公钥导出到文件(例如flash:/pubkey.pub) public-key local-key-pair export ssh-rsa pubkey.pub
- 将公钥文件传送到客户端。
- 在客户端上保存公钥:根据客户端软件(如Xshell)的提示,将公钥内容添加到受信任的主机列表中。
- 在设备上导出公钥:
-
如何使用SSH密钥对(免密登录)?
- 相比密码登录,密钥对登录更安全,你需要:
- 在客户端(你的电脑)上使用
ssh-keygen工具生成一对密钥(私钥和公钥)。 - 将客户端的公钥上传到华为设备上。
- 在华为设备上为AAA用户指定该公钥作为认证方式。
- 在客户端(你的电脑)上使用
- 配置示例:
# 假设公钥内容已保存到设备的 flash:/client_key.pub 文件中 system-view aaa local-key-peer load ssh-key flash:/client_key.pub # 导入客户端公钥 local-user myuser pubkey-pair sshkey # 为用户 myuser 绑定这个公钥 local-user myuser service-type ssh local-user myuser privilege level 15 quit
- 之后,使用SSH客户端连接时,选择“使用公钥认证”并指定你的私钥文件即可,无需输入密码。
- 相比密码登录,密钥对登录更安全,你需要:
希望这份详细的指南能帮助您成功配置华为设备的SSH!

