华为交换机 SSH/STelnet 远程登录配置教程(含 RSA 密钥) - 夜莺博客

华为交换机 SSH/STelnet 远程登录配置教程(含 RSA 密钥)

Telnet 以明文传输密码和配置命令,在等保测评和日常安全要求中已经被禁止用于设备远程管理,取而代之的是 SSH。华为设备上 SSH 的远程登录形态叫 STelnet(Secure Telnet),基于 SSH 协议实现:对用户进行认证并对双向数据加密。本文给出在华为交换机/路由器上从零配置 STelnet 服务端与客户端的完整命令,覆盖密码认证与密钥认证两种方式。

为什么必须用 SSH 替代 Telnet

Telnet 协议在设计之初并没有考虑安全问题:用户名、密码、配置回显都以明文在网络上传输,任何经过链路的抓包设备、中间人节点都能完整还原会话内容。一旦管理网中存在一台被攻陷的主机,攻击者就可以直接嗅探到交换机/路由器的登录口令,进而拿到整网设备的控制权。SSH(Secure Shell)通过非对称加密完成密钥交换与服务器身份认证,再用对称加密保护会话数据,并可对客户端做完整性校验,因此成为设备远程管理的强制性标准。

两者的核心差异可以归纳为以下几点:

  • 传输方式:Telnet 明文传输;SSH 全程加密。
  • 身份认证:Telnet 仅支持口令;SSH 支持口令认证、RSA/DSA 公钥认证,还能结合 AAA(本地或 RADIUS/TACACS+)做集中认证与授权。
  • 服务端口:Telnet 默认 23;SSH 默认 22,可结合 ACL 精确限制登录源地址。
  • 合规要求:等保 2.0 与多数行业安全基线都明确要求关闭 Telnet、改用 SSH 等加密协议进行远程运维。

在华为 VRP 平台上,SSH 分为两个角色:作为服务端的 STelnet 服务器(供外部 SSH 客户端登录本设备),以及作为客户端的 STelnet 客户端(从本设备去登录其他 SSH 服务器)。下面按“服务端配置 → 客户端连接 → 验证排障”的顺序给出完整命令。

第 1 步:使能 STelnet 服务并生成本地密钥对

进入系统视图使能服务端,并生成本地 RSA 主机密钥对(用于传输数据加密,密钥保存在设备中、不保存在配置文件里):

<HUAWEI> system-view
[HUAWEI] stelnet server enable
Info: Succeeded in starting the STELNET server.
[HUAWEI] rsa local-key-pair create
Info: The key name will be: HUAWEI_Host
Input the bits in the modulus [default = 2048]:2048

RSA 密钥对是 STelnet 服务的基础:公钥在 SSH 协商阶段下发给客户端用于验证服务器身份,私钥保存在设备内部。建议密钥长度选择 2048 位及以上,1024 位及以下已不满足当前安全基线要求。若设备已存在密钥对,可用 display rsa local-key-pair public 查看公钥内容,无需重复生成。

第 2 步:创建 AAA 本地用户

创建远程登录账号并指定服务类型为 SSH;service-type ssh 表示该用户只允许通过 SSH 登录:

[HUAWEI] aaa
[HUAWEI-aaa] local-user user1 password irreversible-cipher Huawei@123
Info: Add a new user.
[HUAWEI-aaa] local-user user1 service-type ssh
[HUAWEI-aaa] local-user user1 privilege level 15
[HUAWEI-aaa] quit

这里用 irreversible-cipher 而不是 cipher,是为了让口令在配置文件中以不可逆方式存储,即使配置文件泄露也无法还原明文。生产环境应避免使用默认的 admin 账号名,并把 privilege level 收敛到实际运维所需的最小权限。

第 3 步:配置 VTY 用户界面

VTY 0-4 表示最多 5 个并发远程会话。认证方式设为 aaa,并把入站协议限制为 ssh(配置后设备会自动禁止 telnet):

[HUAWEI] user-interface vty 0 4
[HUAWEI-ui-vty0-4] authentication-mode aaa
[HUAWEI-ui-vty0-4] protocol inbound ssh
[HUAWEI-ui-vty0-4] quit

若希望同时兼容 telnet 客户端可配置 protocol inbound all,但生产环境建议只开 ssh。需要更大并发时可扩展 VTY 范围(如 user-interface vty 0 9),并在同一视图下叠加 ACL 限制登录源。

第 4 步:SSH 用户与认证方式(可选)

新版本 VRP 需要把登录用户名与 SSH 关联(老版本可省略)。密码认证方式配置如下:

[HUAWEI] ssh user user1 authentication-type password
[HUAWEI] ssh user user1 service-type stelnet

其中 service-type 还可以是 sftp、scp 或 all,若需要文件传输则一并放开;authentication-type 可选 password、rsa、dsa、password-rsa、all 等组合,实际取值取决于客户端能力与安全策略。

RSA 公钥认证:免口令登录的完整配置

相比口令认证,公钥认证不通过网络传输任何可变凭据,抗暴力破解能力更强,适合脚本自动化与集中运维平台。做法是先在客户端生成密钥对,再把公钥导入设备并绑定到用户:

# 在 Linux 客户端生成 RSA 密钥对
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_huawei

# 在设备上导入客户端公钥
[HUAWEI] rsa peer-public-key huawei_client
[HUAWEI-rsa-public-key] public-key-code begin
[HUAWEI-rsa-public-key-rsa-key-code] 30819F30 0D06092A 864886F7 ...
[HUAWEI-rsa-public-key-rsa-key-code] public-key-code end
[HUAWEI-rsa-public-key] peer-public-key end
[HUAWEI] ssh user user1 assign rsa-key huawei_client
[HUAWEI] ssh user user1 authentication-type rsa
[HUAWEI] ssh user user1 service-type stelnet

导入公钥时 public-key-code 段内粘贴的是客户端 id_rsa_huawei.pub 中的一串十六进制字符,去掉首尾注释后按设备提示分行粘贴即可。绑定完成后,客户端用 ssh -i ~/.ssh/id_rsa_huawei user1@10.0.0.1 即可免密登录。

SSH 服务器参数调优与登录源限制

默认参数在安全审计中往往不达标,建议显式设置会话超时、认证重试次数与密钥更新周期,并用 ACL 把登录源限制在运维网段:

[HUAWEI] ssh server timeout 60
[HUAWEI] ssh server authentication-retries 3
[HUAWEI] ssh server rekey-interval 60
[HUAWEI] acl 2000
[HUAWEI-acl-basic-2000] rule 5 permit source 10.1.1.0 0.0.0.255
[HUAWEI-acl-basic-2000] quit
[HUAWEI] user-interface vty 0 4
[HUAWEI-ui-vty0-4] acl 2000 inbound
[HUAWEI] sftp server enable

timeout 控制空闲超时(分钟),authentication-retries 限制口令错误次数以抵御暴力破解,rekey-interval 决定会话密钥的刷新周期。若运维还需要上传下载配置文件,可在使能 STelnet 的同时开启 sftp server enable,并相应放开用户的 service-type。

第 5 步:客户端连接与首次认证

在 PC/客户端上执行(华为设备作为 SSH 客户端首次访问服务器时,需要使能首次认证,之后会保存服务器主机公钥):

# 华为设备作为客户端
[HUAWEI] ssh client first-time enable
<HUAWEI> ssh client 10.0.0.1
# Linux 客户端
ssh user1@10.0.0.1

Linux/macOS 客户端首次连接时会提示确认服务器指纹,输入 yes 后将主机公钥写入 ~/.ssh/known_hosts;Windows 平台可用 PuTTY、MobaXterm 或 OpenSSH 客户端。也可以基于 RSA 认证:把客户端生成的公钥 rsa peer-public-key 导入服务器并绑定到用户(ssh user user1 authentication-type rsa),彻底免除口令输入。

验证与排障

display ssh server status
display ssh server session
display rsa local-key-pair public
display users

连接失败时按顺序排查以下要点:

  • 服务是否已使能:display ssh server status 中 STelnet server 应为 Enable。
  • VTY 认证方式是否为 aaa、入站协议是否限制为 ssh。
  • AAA 本地用户的 service-type 是否包含 ssh,密码是否已正确设置。
  • SSH 用户名是否与 AAA 用户名一致(新版本必须一致)。
  • 设备是否有到客户端的路由,VTY 下是否被 ACL 拦截,中间防火墙是否放行 TCP 22。
  • 客户端报 “no matching key exchange method / cipher” 时,检查两端 SSH 算法套件是否兼容。

完整配置清单(可直接复制)

[HUAWEI] stelnet server enable
[HUAWEI] rsa local-key-pair create
[HUAWEI] aaa
[HUAWEI-aaa] local-user user1 password irreversible-cipher Huawei@123
[HUAWEI-aaa] local-user user1 service-type ssh
[HUAWEI-aaa] local-user user1 privilege level 15
[HUAWEI-aaa] quit
[HUAWEI] ssh user user1 authentication-type password
[HUAWEI] ssh user user1 service-type stelnet
[HUAWEI] user-interface vty 0 4
[HUAWEI-ui-vty0-4] authentication-mode aaa
[HUAWEI-ui-vty0-4] protocol inbound ssh
[HUAWEI-ui-vty0-4] quit
[HUAWEI] ssh server authentication-retries 3
[HUAWEI] ssh server timeout 60

常见问题 FAQ

Q:配置 protocol inbound ssh 后为什么 telnet 就登录不了? 这是预期行为——该命令把 VTY 的入站协议限定为 SSH,设备会自动关闭 23 端口的 Telnet 接入,属于安全加固的标准动作。

Q:STelnet 服务已使能,但客户端连接被立即断开? 优先检查 RSA 主机密钥是否生成成功,以及 AAA 用户是否存在、service-type 是否为 ssh。

Q:能否用 RADIUS/TACACS+ 做集中认证? 可以。把 authentication-mode aaa 下的认证方案指向远端服务器,本地用户仅作为应急账号保留。

SSH 属于安全登录加固的一部分,更多华为设备管理面配置见《华为交换机 Console/Telnet 登录配置》,用户与 AAA 体系的命令风格可对照《华为 VRP 常用命令》,链路层与聚合相关配置可参考《华为交换机 Eth-Trunk 链路聚合配置》。

原文链接:https://blog.csdn.net/qq_53648776/article/details/143757142