简介这份PDF文档面向企业网络管理员、运维工程师及网络技术学习者以华为S5700系列交换机为实验环境系统讲解基于SSH/STelnet协议的安全远程登录配置方法用于替代存在明文风险的传统Telnet保障远程管理链路的数据机密性与完整性。资料包为单个PDF文件大小仅134KB内容聚焦便于下载后随时查阅目前已有465人学习。文档以真实组网需求为例完整演示了在SSH服务器端生成本地DSA密钥对、配置VTY用户界面与AAA认证、新建SSH用户、开启STelnet服务并指定服务方式等关键步骤同时对比了STelnet V1与V2的安全性并给出PuTTY客户端登录验证及最终配置文件便于对照实验和排错能有效提升网络设备的远程管理安全水平适合日常运维与项目交付参考。1. 为什么要给S5700开SSH远程管理的第一道门很多人来找华为S5700 SSH远程管理配置实例其实不是缺一份能粘贴的命令而是缺一套能一次跑通的思路。S5700是园区网里最常见的接入和汇聚交换机日常维护要改VLAN、查端口、更新ACL如果每次都抱着笔记本进弱电间接console时间全耗在路上了。SSH远程管理解决的就是这个问题管理网段内任何一台电脑一条命令就能登录设备而且配置链路是加密的不像Telnet那样报文裸奔、密码可以被抓包还原。这篇实例覆盖RSA密钥生成、AAA用户创建、VTY绑定、登录验证、故障排查和批量加固适合正在接手S5700的网工和运维照着敲。真机和eNSP模拟器都能用命令差异我会在对应位置标出来。2. 动手前的准备协议选型、三件套与验证环境2.1 为什么是SSH而不是Telnet明文密码带来的教训我刚入行时在一家工厂维护网络那时候图省事所有交换机都开着Telnet。后来一次等保检查安全同事在核心交换机镜像口做了一个抓包几分钟就把我看设备时的密码还原出来了。那是我第一次意识到Telnet在可信任的维护网段里也扛不住抓包。华为S5700出厂默认并没有开启SSH但任何上了生产环境的S5700远程管理都应该是SSH而不是Telnet这个没得商量。对比项TelnetSSH传输层端口2322密码传输明文加密会话内容可被抓包完整还原加密传输交换机侧配置VTY认证一行命令RSA密钥 AAA用户 VTY绑定三处适用场景纯实验环境、无敏感设备生产环境远程管理SSH分为v1和v2两个版本v1早年爆出过不少协议级漏洞所以S5700上生成密钥后协商会走v2。部分老版本VRP允许同时开启v1和v2生产环境建议只保留v2后面第4章会说到对应命令。2.2 S5700上SSH服务的三块拼图RSA密钥、AAA用户、VTY视图S5700的SSH远程管理不像家用路由器那样勾一个“开启远程SSH”就完事它由三块独立配置拼起来缺一块都连不上。我习惯用一个类比来记RSA密钥是门锁证明对面这台交换机确实是设备本身AAA用户是钥匙决定谁能进来VTY是门框决定允不允许用SSH这种姿势进门。第一块是RSA主机密钥。交换机用这对密钥向客户端证明自己的身份同时参与会话协商。密钥不存在SSH服务起不来密钥丢了客户端会因为“主机密钥不匹配”拒绝连接。第二块是AAA本地用户。S5700默认没有enable密码那套逻辑远程登录用户必须在AAA视图里创建并且明确用户的密码、权限级别和接入类型。权限级别给低了很麻烦后面第5章会专门讲。第三块是VTY虚拟终端通道。用户从SSH进来后落在哪一条VTY上由VTY视图下的认证方式和接入协议决定。最容易被忽略的是VTY里只改了protocol inbound ssh而没改认证方式结果SSH登录直接认证失败这个踩坑记录在第5章展开。常见的操作误区是只建了AAA用户没在SSH视图下绑定ssh user登录时一直提示认证失败或者反过来绑定了SSH用户但AAA里没有这个账号。两处必须同时存在登录才能成功。2.3 用eNSP搭一个验证环境从建拓扑到PC端准备手头没有真机时eNSP里的S5700和真实设备在SSH配置上几乎一致适合先把流程跑通。我的习惯是先在模拟器里验证一遍命令再拿着这份配置上真机因为真机敲错了要跑一趟机房模拟器里出错大不了重启设备。eNSP里拖一台S5700再拖一台PC连线启动先通过console口登录交换机。PC的IP配成192.168.10.100/24交换机上创建一个管理VLAN的VLANIF接口地址配192.168.10.10/24保证三层互通。注意eNSP自带的PC终端不一定带SSH客户端常见做法是用Cloud接口把交换机的管理网桥接到物理机网卡然后用本机命令行里的SSH去登录。这里有个经验如果公司管理网和生产网是隔离的模拟器的Cloud绑定物理网卡时要选对网卡选成无线网卡或虚拟网卡会导致ARP不通SSH自然连不上。模拟器里能通真机上就成功了一大半剩下就是端口和ACL的问题了。3. 在S5700上开启SSH远程管理一份可照抄的配置实例以下命令基于VRP V200R系列通用写法eNSP里的S5700和多数存量真机都能直接用。极老版本上个别命令名有差异比如stelnet server enable在更早的版本里写作ssh server enable命令敲不下去时按Tab补全看提示即可。3.1 第一步生成RSA密钥并打开SSH服务system-view rsa local-key-pair create # 提示The key name will be: S5700_Host直接回车用默认密钥名 # 提示Please input the key modulus bits [2048]: 输入2048回车 # 生成过程中会有随机数采集提示耐心等待 stelnet server enable这条命令的作用是生成交换机的主机RSA密钥对。2048位是目前生产环境的底线低于1024位的密钥在等保和护网里基本会被判不合格。密钥生成后stelnet server enable把SSH服务打开设备开始监听22端口。注意如果执行rsa local-key-pair create时提示密钥已存在说明这台设备之前生成过密钥。想沿用就跳过想重建就先用rsa local-key-pair destroy删掉旧密钥再创建。老版本上如果stelnet server enable报错可以换成ssh server enable然后通过display ssh server status确认服务状态。3.2 第二步在AAA视图下创建SSH登录用户aaa local-user admin password irreversible-cipher Admin123 local-user admin privilege level 15 local-user admin service-type ssh quitAAA是华为设备上做本地认证的标准入口。这里创建了一个名为admin的本地用户密码用irreversible-cipher存储意思是配置文件和display里看到的是一串不可逆的密文不会明文暴露密码。华为对密码复杂度有默认要求必须包含大写、小写和数字长度至少8位Admin123这种组合是安全性和记忆力之间的折中。privilege level 15是华为的最高权限等级。如果图省事配成1到3级登录进去连system-view都进不了只能看看状态。service-type ssh限定了这个用户只能走SSH接入不能Telnet登录这是一层额外的收敛。3.3 第三步VTY视图绑定SSH接入user-interface vty 0 4 authentication-mode aaa protocol inbound ssh quitVTY 0到4一共5个虚拟终端代表同一时间最多允许5个远程登录会话。authentication-mode aaa让这条VTY通道使用AAA认证数据库也就是第二步创建的admin用户。protocol inbound ssh把通道收窄为只允许SSH协议进入Telnet直接被拒。提示在正式收窄之前可以先把protocol inbound all配上去用SSH登录验证成功后再改成protocol inbound ssh。这个顺序能防止配置过程中把自己锁在设备外面。3.4 第四步从PC用命令行和PuTTY验证登录ssh admin192.168.10.10 # 首次连接提示确认主机密钥输入yes并回车 # 提示输入密码输入Admin123 # 登录成功后进入VRP用户视图提示行变成S5700常见的SSH工具里Windows 10以上自带的OpenSSH命令、PuTTY、Xshell都行机制完全一样。PuTTY的配置更直观Host填192.168.10.10Port填22Connection type选SSH点击Open后第一次会弹主机密钥确认框确认指纹后输入账号密码。首次连接的主机密钥指纹确认是防中间人攻击的机制不要因为它弹出来就无脑点取消。登录成功后可以敲display version看一下设备型号和VRP版本确认自己连的设备没错。3.5 别忘了save配置保存与重启检验save # 提示是否保存配置输入Y # 提示输入文件名时直接回车用默认名 # 保存提示success后完成S5700的配置分为当前配置和保存配置两层。SSH密钥对、AAA用户、VTY绑定这些命令敲完如果不save设备一重启全部回到出厂态。更隐蔽的是RSA密钥它的丢失不会在配置里报错但SSH协商会失败客户端提示找不到主机密钥。我的习惯是配完SSH立即save然后有条件的话重启一次确认重启后SSH还能连上这一步能提前暴露密钥丢失这类隐患。4. 验证与排错SSH连接失败的几个关键排查点4.1 用display命令确认三块配置是否就位display ssh server status # 看SSH服务是否enabled、端口是否22、当前SSH版本 display ssh user-information # 看SSH用户绑定信息、认证类型、服务类型 display current-configuration | include ssh # 从当前配置里过滤出所有带ssh关键字的配置行 display rsa local-key-pair public # 看交换机本地的RSA公钥是否存在这四条命令是排查SSH问题的起点。第一条确认SSH服务层面没有问题第二条确认ssh user是否绑定成功、认证类型是否为password第三条看AAA和VTY的配置有没有真正进入运行配置第四条确认密钥对没有丢失。如果display ssh server status显示服务是disable回到第3.1节重新执行stelnet server enable。如果服务是enable但客户端连不上问题基本出在认证或VTY绑定上继续往下查。4.2 打开调试开关看SSH协商过程terminal monitor terminal debugging debugging ssh server # 在console口执行以上三条后再从PC触发一次SSH连接SSH连接属于协商式协议失败时客户端给的提示往往很笼统真正的原因要看设备侧日志。在console口打开SSH调试开关后再让PC发起一次登录控制台会滚动打印协商过程。看到protocol error类日志多数是SSH版本或算法协商失败看到authentication failed是用户名密码或绑定的问题看到vty line is busy是VTY会话被人占满了。注意调试输出刷屏很猛排查完一定要执行undo debugging ssh server关掉否则生产环境下这台设备的console窗口会一直被打日志淹没。4.3 客户端连接失败的常见输出对照客户端报错故障方向优先排查位置Connection refused / port 22SSH服务未开启display ssh server status、stelnet server enableConnection closed by remote hostSSH协议未配对VTY下protocol inbound、ssh user service-type stelnetNo matching cipher / kex failed客户端与设备算法协商失败升级客户端版本或调整设备ssh cipherPermission denied用户名密码或认证方式错误AAA密码、service-type ssh、VTY下authentication-mode aaaServer host key not foundRSA主机密钥丢失重新生成rsa key并save这张表覆盖了我这些年遇到的大部分SSH连接失败场景。前两类最常见后两类往往和版本、密钥保存有关。对照表排查比乱猜快得多我一般先跑4.1里的四条display再对照客户端报错决定要不要开调试。5. 避坑华为S5700 SSH远程管理常见的5个翻车现场5.1 密钥与协议类故障第一条配置当天能连重启后SSH再也连不上这是所有人都可能撞上的坑。现象是当天配完SSH验证通过第二天到机房发现设备重启过SSH连接提示找不到主机密钥或者协商失败console口登录后display ssh server status显示服务正常但display rsa local-key-pair public是空的。原因是rsa local-key-pair create生成的密钥没有随着save写入持久化存储设备重启后密钥丢了。SSH服务虽然是使能状态但没有密钥可以协商客户端自然被拒。解决方法是重新生成RSA密钥并立即save。这事说白了就是吃了没保存的亏配置界把“配完不save”叫后悔药没吃上SSH密钥比普通配置更敏感丢了不报错但就是连不上。第二条执行stelnet server enable时报错或者服务状态始终不对。现象是老版本设备上这条命令敲下去提示未知命令或者执行成功但display ssh server status里服务仍然是disable。原因是S5700跨越多个VRP版本早期版本用的是ssh server enable后来才统一成stelnet server enable。解决方法是优先用Tab补全看当前版本支持的命令形式然后通过display ssh server status确认最终状态。这类版本差异问题没有统一答案认准“服务状态为enable才算完成”这一条标准即可。5.2 认证与接入类故障第三条密码输入正确依然认证失败console却能登录。现象是SSH客户端输入账号密码后提示Permission denied但同一个人用console口登录同一台设备却能成功。原因是三处配置没有对齐AAA用户没有service-type ssh、SSH用户没有绑定该账号、VTY认证模式不是aaa。这三处只要一处不对密码再正确也进不去。解决方法是依次检查display ssh user-information、确认AAA里local-user的三条配置都没丢、再确认VTY下authentication-mode aaa存在。很多时候这类“玄学”问题就是某一步在后续配置整理时被覆盖掉了重新按3.2和3.3走一遍就好。第四条多个维护人员同时在线VTY会话被占满新人连不上。现象是SSH连接一直卡住或提示VTY用户数已达上限老手在设备上挂着几个会话不退出。原因是S5700默认只开放5个VTY远程维护会话没有配置空闲超时人走了连接没断。解决方法是console登录后执行reset user-interface vty 0 4把挂死的会话清掉然后在VTY视图下配idle-timeout 10 010分钟无操作自动断开防止会话悬挂。第五条整个局域网都能访问SSH端口设备日志里全是爆破记录。现象是管理IP放在业务VLAN里办公室所有主机都能尝试SSH登录日志里大量认证失败记录等保检查一查一个准。原因是没做登录源限制。管理面不应该暴露给整个局域网解决方法是配置基本ACL只放行运维网段在VTY下挂载acl number 2001 rule 5 permit source 192.168.100.0 0.0.0.255 rule 10 deny source any quit user-interface vty 0 4 acl 2001 inboundACL 2001是基本ACL只能匹配源地址够用了。rule 5先放行运维网段的192.168.100.0/24rule 10拒绝其余所有地址。在VTY下挂载后不在白名单的地址连TCP握手都会被丢爆破工具根本摸不到22端口。6. 进阶把单机配置变成整网基线单台S5700跑通SSH只是开始真正有价值的是把这套配置固化成整网基线。我现在的做法是给每台上架的S5700都执行同一套加固配置用表格维护基线项基线项配置目的协议版本只保留SSH v2避免v1协议漏洞密钥长度RSA 2048满足等保要求源地址限制ACL只放行运维网段缩爆破面空闲超时idle-timeout 10 0防会话悬挂账号管理每人独立账号、按岗分配level操作可审计日志外送info-center loghost指向日志服务器登录行为留痕批量交付时用脚本推配置比逐台Telnet高效得多。我一般用Python配合netmiko把3.1到3.3的命令封装成配置列表逐台下发from netmiko import ConnectHandler device { device_type: huawei, ip: 192.168.100.10, username: admin, password: Admin123, } with ConnectHandler(**device) as conn: conn.send_config_set([ stelnet server enable, user-interface vty 0 4, protocol inbound ssh, idle-timeout 10 0, ]) conn.save_config()device_type指定为huawei对应VRP平台send_config_set逐条下发命令save_config相当于执行save。注意批量操作前先拿一台设备试跑确认脚本没问题再滚动到全网避免一次把几十台设备的配置都改坏了。我现在每上一台新的S5700都会在初始化脚本里把SSH配置和save放一起ACL白名单同步加好避免以后想起来再补。希望帮到你。本文还有配套的精品资源点击获取