ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

华为S5720交换机SSH与SFTP安全远程管理配置实战

2026/8/5 22:48:07 拓冰建站 浏览量
华为S5720交换机SSH与SFTP安全远程管理配置实战 1. 项目缘起为什么要在S5720上折腾远程管理干网络运维的兄弟都知道每天在机房和设备间里穿梭对着那一排排闪烁的交换机指示灯敲命令时间长了谁都受不了。尤其是当设备分布在不同的楼层甚至不同的园区时为了改个VLAN或者看个日志就得跑断腿效率低不说还容易出错。我手头就有一批华为S5720系列交换机作为经典的盒式接入交换机它们稳定可靠但出厂默认只开了Console口和Telnet。Telnet这玩意儿数据明文传输在现在的网络环境里就跟“裸奔”差不多稍微有点安全意识都不敢用。所以给这些S5720配置上SSH这里特指Stelnet即Secure Telnet和SFTPSecure File Transfer Protocol就成了一个必须完成的“基础设施升级”。这不仅仅是换个登录方式那么简单它意味着安全性飞跃所有管理流量命令、配置、文件全程加密防止中间人窃听或篡改。运维效率提升在任何能连通网络的地方都能安全地登录设备进行配置和排错。自动化基础像Ansible这类自动化工具绝大多数模块都依赖SSH协议与网络设备通信。没有SSH自动化运维就无从谈起。合规性要求越来越多的等保测评和行业规范明确要求禁止使用Telnet等非加密管理协议。网上关于华为交换机配置的文章很多但要么过于零散只讲命令不讲逻辑要么版本老旧和新版VRP系统对不上。这次我就结合最近在S5720-56C-HI交换机VRP版本V200R019C10SPC500上的实战把从零开始配置Stelnet和SFTP的完整过程、背后的原理、以及我踩过的那些坑一次性给你讲透。无论你是刚接触华为设备的新手还是想梳理一遍流程的老手这篇都能让你直接“抄作业”。2. 前期准备与核心概念扫盲在动手敲命令之前我们得先把“地基”打好理解几个关键概念并准备好必要的环境。这能让你在后续配置时不仅知道怎么做更明白为什么这么做。2.1 Stelnet vs. SFTP它们到底是什么关系很多人容易把这两个搞混其实它们是一套“组合拳”底层都基于SSH协议。Stelnet (SSH) 你可以把它理解为“安全的命令通道”。它的核心功能是为你提供一个加密的CLI命令行界面登录会话。你通过Putty、MobaXterm、或者系统自带的ssh命令连接后输入的命令和设备的返回结果都是在加密隧道里传输的。它替代了Telnet。SFTP 你可以把它理解为“安全的文件通道”。它是SSH协议的一个子系统Subsystem专门用于在客户端和服务器在这里就是交换机之间安全地传输文件。你可以上传新的系统软件、下载日志文件、备份配置文件全程加密。它替代了不安全的FTP。关键点 在华为交换机上SFTP服务是依赖于SSH服务Stelnet的。也就是说你必须先成功配置并启动了SSH服务器功能才能进一步开启和使用SFTP。它们共用同一套用户认证和密钥体系。2.2 必不可少的“入场券”本地用户与用户权限这是整个配置中最容易出错的一环。华为设备管理用户的权限体系比较细致搞不清楚就会导致“登录成功但啥也干不了”的尴尬局面。用户级别 (User Level) 华为VRP系统有0-15共16个级别数字越大权限越高。0级参观级 只能执行ping,tracert等网络诊断命令。1级监控级 能执行display等查看命令但不能修改配置。3级管理级我们远程管理最常用的级别可以执行系统运行、维护等命令包括大部分配置命令但涉及系统核心、高危操作如格式化存储仍需更高权限。15级管理级 最高权限相当于超级管理员superuser。服务类型 (Service Type) 即用户通过什么方式登录。对于我们的远程管理必须包括ssh和sftp。如果你只配置了telnet那用户就无法通过SSH登录。实操心得 很多教程只让配置ssh服务类型结果用户发现能用SSH登录却无法使用SFTP传输文件就是因为漏了sftp。一个用于远程管理的用户其服务类型至少应包含ssh和sftp。2.3 客户端工具选择你不需要特别的软件但一个好用的工具能事半功倍。SSH/Stelnet客户端 Windows下推荐MobaXterm功能强大集成SFTP图形化界面或PuTTY轻量经典。macOS/Linux直接用终端ssh命令即可。SFTP客户端 如果不用MobaXterm这种集成的可以用WinSCPWindows或sftp命令命令行。3. 实战配置一步步构建安全的远程管理假设我们交换机的管理IP是192.168.1.1我们要创建一个用户名为admin的远程管理账户。以下所有命令均在系统视图HUAWEI下执行。3.1 第一步基础网络与设备信息配置远程管理的前提是网络可达。我们首先确保交换机有一个可路由的管理IP并设置主机名以便识别。sysname S5720-Core-Switch // 给交换机起个名字 interface Vlanif 1 // 通常用VLANIF 1作为管理接口 ip address 192.168.1.1 24 // 配置管理IP和掩码3.2 第二步生成本地密钥对——安全连接的基石SSH之所以安全核心在于非对称加密密钥对。设备端需要生成一对密钥公钥和私钥客户端通过公钥来验证服务器身份并协商加密会话。rsa local-key-pair create // 生成RSA密钥对系统会提示你输入密钥模数长度默认是2048位直接回车即可。生成过程可能需要几十秒请耐心等待。为什么是RSA这是目前最广泛兼容的算法。虽然从安全演进角度看ECC椭圆曲线算法更优但考虑到客户端工具如一些老版本Putty的兼容性RSA仍是稳妥的选择。华为新版本也支持dsa和ecc但若无特殊需求rsa足矣。3.3 第三步创建SSH用户并绑定服务类型现在我们来创建那个关键的远程管理用户。aaa // 进入AAA认证视图 local-user admin password cipher Huawei123 // 创建用户admin密码加密存储为Huawei123 local-user admin privilege level 3 // 设置用户权限级别为3管理级 local-user admin service-type ssh sftp // 核心指定该用户可用于ssh和sftp服务 local-user admin state active // 激活用户避坑指南密码复杂度 生产环境务必使用高强度密码包含大小写字母、数字和特殊字符。示例密码Huawei123仅为演示。服务类型遗漏 再次强调service-type ssh sftp必须同时指定缺一不可。权限级别 对于日常运维level 3足够。如果后续需要升级系统软件涉及存储操作可能需要临时提升至level 15或使用super密码切换。3.4 第四步启用SSH服务器功能并配置参数生成密钥和创建用户后就可以启动SSH服务了。stelnet server enable // 全局开启Stelnet服务器功能 sftp server enable // 全局开启SFTP服务器功能 ssh user admin authentication-type password // 设置用户admin的认证方式为密码认证 ssh user admin service-type sftp // 将用户admin绑定到SFTP服务 user-interface vty 0 4 // 进入VTY虚拟终端接口这是远程登录的入口 authentication-mode aaa // 认证模式设置为AAA即使用我们刚才创建的本地用户 protocol inbound ssh // 关键规定VTY接口只允许SSH协议接入彻底禁用Telnet配置解析ssh user ... service-type sftp 这条命令显式地将用户admin授权给SFTP服务使用。即使你在local-user里配了sftp这里也最好加上确保授权明确。protocol inbound ssh 这是将Telnet踢出局的决定性命令。配置后尝试Telnet连接将被拒绝。如果你想保留Telnet不推荐可以配置为protocol inbound all。3.5 第五步验证配置与首次连接配置完成后不要急着关掉Console口先做验证。display ssh server status // 查看SSH服务器状态确认服务已开启 display ssh user-information // 查看SSH用户信息确认admin用户已绑定 display local-user // 查看本地用户确认admin用户状态为active且服务类型正确现在从你的办公电脑打开MobaXterm或PuTTY。主机名/IP192.168.1.1协议SSH端口22(默认)点击连接首次连接时会弹出服务器的RSA密钥指纹确认窗口这就是之前生成密钥对的作用点击“接受”或“是”。输入用户名admin和密码Huawei123。如果成功登录到S5720-Core-Switch命令行那么恭喜你Stelnet配置成功4. SFTP功能测试与高级应用SSH通了SFTP自然水到渠成但我们需要测试一下文件传输是否真的可用。4.1 使用MobaXterm进行SFTP传输测试MobaXterm的优势在于SSH登录成功后左侧会自动开启一个SFTP文件浏览窗口。用SSH登录交换机后左侧边栏会显示交换机的文件系统目录通常是flash:/。尝试从本地电脑拖拽一个小的文本文件如test.txt到flash:/目录下。在交换机的CLI里执行dir flash:/看看文件是否已存在。尝试从flash:/目录下载vrpcfg.zip配置文件备份到本地。如果以上步骤都成功说明SFTP功能完全正常。4.2 使用命令行进行SFTP测试对于习惯命令行的用户或者需要在脚本中集成时命令行SFTP非常有用。在你的电脑客户端上打开命令行Linux/macOS的终端或Windows的PowerShell/安装了OpenSSH的CMDsftp admin192.168.1.1输入密码后会进入sftp提示符。sftp ls // 列出交换机上的文件 sftp put /local/path/to/file.txt // 上传本地文件到交换机当前目录 sftp get vrpcfg.zip // 从交换机下载文件到本地当前目录 sftp bye // 退出4.3 常见SFTP故障排查即使SSH能登录SFTP也可能出问题。以下是几个排查思路连接被拒绝或超时检查交换机上sftp server enable是否已配置。检查防火墙包括交换机本身的ACL、以及网络路径上的防火墙是否放行了TCP 22端口。认证失败在交换机上执行display ssh user-information确认对应用户的Service-type包含SFTP。执行display local-user确认该用户的Service-type包含sftp并且状态是Active。权限不足无法上传/删除文件这是最隐蔽的坑。SFTP用户的文件操作权限受其用户级别和文件系统权限共同影响。一个level 3的用户可能无法覆盖系统关键文件。解决方案尝试在交换机CLI通过SSH登录后先进入你想要操作的目录比如cd flash:/然后再进行SFTP操作。有时这能解决路径权限问题。对于重要文件操作考虑使用scp命令如果设备支持或者临时将用户级别提升至15级。SFTP传输速度慢这不是配置问题而是SSH协议加密解密的开销和TCP窗口大小的影响。对于大文件可以在客户端工具里启用压缩如sftp -C或者考虑在内网使用更快的加密算法在SSH客户端配置中调整。5. 安全加固与生产环境建议基础功能跑通只是第一步要让这套机制真正用于生产还需要加固。5.1 修改默认SSH端口将SSH服务端口从默认的22改为一个非知名端口能减少大量自动化扫描和攻击。ssh server port 1022 // 将SSH服务器端口改为1022注意 修改后客户端连接时必须显式指定端口如ssh admin192.168.1.1 -p 1022。5.2 配置ACL限制管理源IP只允许运维堡垒机或特定管理网段的IP地址访问交换机的SSH服务。acl 2000 // 创建一个基本ACL rule 5 permit source 10.10.10.0 0.0.0.255 // 允许运维网段10.10.10.0/24 rule 10 deny source any // 拒绝其他所有 user-interface vty 0 4 acl 2000 inbound // 在VTY接口上应用ACL这样即使攻击者拿到了密码如果他的IP不在白名单内也无法建立连接。5.3 启用SSH协议算法强制定制禁用不安全的旧协议版本和弱加密算法。ssh server compatible-ssh1x disable // 禁用老旧的SSH1.x协议 ssh server key-exchange dh_group14_sha1 // 指定密钥交换算法 ssh server cipher aes128_ctr aes256_ctr // 指定加密算法 ssh server hmac sha2_256 sha2_512 // 指定完整性校验算法这些算法名称可能因VRP版本略有差异请使用ssh server ?查看当前版本支持的算法列表并选择强度高的。5.4 配置会话超时与日志记录user-interface vty 0 4 idle-timeout 15 0 // 设置空闲超时时间为15分钟0秒超时自动断开 shell // 确保用户登录后进入命令行界面 info-center enable // 开启信息中心日志 info-center loghost source Vlanif1 // 指定发送日志的源接口 info-center loghost 10.10.10.100 // 将日志发送到日志服务器(10.10.10.100)将重要的认证、授权日志如用户登录成功/失败发送到中央日志服务器如Syslog服务器便于审计和溯源。6. 配置备份与自动化管理雏形当SSH和SFTP就绪后你可以轻松实现配置的自动备份。6.1 手工命令备份通过SFTP你可以用一条命令将配置备份到远程服务器。假设你有一台Linux备份服务器IP: 10.10.10.100上面开启了SSH服务。 在交换机上你可以这样操作需要交换机支持scp命令或使用sftp交互模式 更通用的方法是在备份服务器上写一个脚本通过sshpass非交互式密码或密钥认证主动从交换机拉取配置。# 在备份服务器上的脚本示例 (使用ssh密钥认证更安全) #!/bin/bash SWITCH_IP192.168.1.1 BACKUP_USERadmin BACKUP_DIR/backup/switches/ CONFIG_FILEvrpcfg-$(date %Y%m%d).zip # 使用SCP命令下载配置 scp -P 1022 $BACKUP_USER$SWITCH_IP:flash:/vrpcfg.zip $BACKUP_DIR/$CONFIG_FILE6.2 迈向自动化Ansible基础有了SSH你就可以使用Ansible来批量管理华为交换机了。虽然Ansible原生对华为设备的支持模块如ios_command对应思科不如网络巨头那么丰富但我们可以使用ansible.netcommon集合中的cli_command模块这是一个通用的通过CLI管理网络设备的模块。一个简单的Ansible Playbook示例 (backup_switches.yml)--- - name: Backup Huawei S5720 Switches Configuration hosts: switches gather_facts: no collections: - ansible.netcommon tasks: - name: Execute display current-configuration command ansible.netcommon.cli_command: command: display current-configuration register: config_output - name: Save configuration to local file copy: content: {{ config_output.stdout[0] }} dest: ./backups/{{ inventory_hostname }}-{{ ansible_date_time.date }}.cfg你需要一个hosts清单文件定义你的交换机并配置正确的SSH连接参数用户名、密码、端口等。这为成百上千台交换机的统一配置、备份、检查打开了大门。走到这一步你的华为S5720交换机已经拥有了一套坚固、安全且具备扩展性的远程管理能力。从最初的明文Telnet到现在的加密SSH/SFTP不仅是技术的升级更是运维理念的进化。记住安全配置不是一劳永逸的定期审查用户、更新密钥、关注日志才能让这套系统在长期运行中持续可靠。