华为交换机远程登录配置实战:Telnet与SSH全解析
很多刚接触华为交换机的人第一件事往往不是配置 VLAN而是先想明白我到底怎么才能远程连上这台设备机房设备多、Console 线不够用的时候大家都会想到开 telnet 或者 SSH把设备接入办公网然后坐在工位前就能登录配置。这篇内容就围绕“华为交换机基础配置telnet/ssh 登录”展开先把远程登录这条链路彻底讲透再顺带把交换机初始化、VLAN 规划、密码管理和常见排障串起来适合刚上手华为设备的新手也适合已经能把设备跑起来但没规范管理远程登录的兄弟。我自己的习惯是拿到一台新交换机不管它是什么型号先把远程登录和安全认证搞定再谈业务配置。因为后面所有的工作都需要“能稳定进系统”这个前提。文章里我会用 S5720/S5730 系列的命令做演示这些命令在华为 VRP 平台的大多数机型上通用个别差异我会单独指出来。1. 项目背景与整体拆解1.1 你手里大概率是哪台华为交换机华为企业网交换机现在最常见的是 S5700、S5720、S5730、S5735、S6730 这几个系列。S5700 属于老一代三层交换机在不少公司机房里还在服役S5720 是后来替代 S5700 的明星款千兆接入再加万兆上行性价比很高S5730 和 S5735 则是目前主推的型号S5735 在中小项目里出现频率极高S6730 是万兆核心一般用于汇聚层或中型网络核心。这些型号虽然硬件规格不一样但软件平台基本都跑在 VRPVersatile Routing Platform上所以基础配置命令非常接近。首先要做的是登录设备后看一眼版本防止命令差异导致误操作display version通过这条命令确认 VRP 版本号比如 V200R019C00。不同版本对 SSH 的默认策略、密码加密方式会有一点差别但整体框架不变。1.2 这次要解决的三个核心问题远程登录看起来就是一个“能连上”的问题实际上拆开来看主要有三件事第一开启远程管理服务。不管是 telnet 还是 SSH设备默认都是关着的尤其是 SSH新一代设备出于安全考虑并没有默认开启必须先手动打开服务。第二建立用户认证体系。登录设备必须有一个身份验证环节。华为交换机支持 password 认证、AAA 本地认证、AAA 远程认证RADIUS/HWTACACS我们平时最常用的就是 AAA 本地用户把用户名和密码直接写在交换机上。第三规划好管理网络。设备要能被远程访问本身得有一个管理 IP而且这个 IP 必须和你的电脑网络互通。很多人配置完 telnet 却连不上大多数问题不是出在 telnet 本身而是管理 IP 不通。这三件事解决完远程登录的基本盘就有了。1.3 演示环境与拓扑说明为了不让后面的配置显得悬浮我先定一个最简单的演示环境。手头有一台 S5720 三层交换机管理 VLAN 用 VLAN 100管理 IP 是 192.168.100.10/24交换机 Eth0/0/1 接口连接电脑电脑 IP 配置成 192.168.100.20/24。system-view sysname SW-Core vlan batch 100 quit interface vlanif 100 ip address 192.168.100.10 255.255.255.0 quit interface GigabitEthernet 0/0/1 port link-type access port default vlan 100 quit注意华为新版本里接口编号可能是GigabitEthernet0/0/1也可能简写成GE0/0/1看具体型号和版本。配好之后先用ping 192.168.100.20从交换机侧测试一下和电脑的连通性通则说明管理链路是通的后面配置 telnet 或 SSH 才有意义。2. 远程登录方式选型与管理链路准备2.1 telnet 和 SSH 到底怎么选telnet 最大的问题就是明文传输用户名、密码、配置内容在网络里都是裸奔的只要有人在中间抓包账号密码直接泄露。SSH 则通过加密隧道传输所有数据安全性高一大截。但如果真的在内网环境、设备就在同一间机房里telnet 也不是完全不能用它的好处是配置简单、排错直观抓包看协议时特别方便。我之前在调试一些老设备时就经常临时开一下 telnet等调试完再关掉。对比项telnetSSH华为里叫 STelnet默认端口2322加密传输不支持支持密文传输配置复杂度低稍高需生成密钥对安全性低高适用于纯内网、临时调试跨网段、公网、生产环境华为默认状态关闭关闭我的原则是能上 SSH 就尽量上 SSHtelnet 只作为临时手段。2.2 VTY 线路是什么配置远程登录之前得先弄明白 VTY。VTY 是虚拟终端线路也就是设备给远程登录用户开放的“虚拟座位”。交换机默认有 5 条 VTY 线路编号从 0 到 4也就是说默认最多允许 5 个远程会话同时登录。部分高配型号会开放 0 到 14 共 15 条。所有 telnet、SSH 用户进来都要先占一条 VTY 线路。配置 VTY 的地方就是user-interface vty 0 4这段配置决定了远程用户用什么方式认证、允许使用哪种登录协议。user-interface vty 0 4 authentication-mode aaa protocol inbound ssh quit解释一下这行配置的意思VTY 0 到 4 这 5 条线路认证方式走 AAA允许的登录协议只放行 SSH。如果你同时想保留 telnet 和 SSH就把protocol inbound改成all。2.3 管理 VLAN 和接口规划这件事别偷懒很多人图省事直接拿 VLAN 1 做管理。VLAN 1 是设备默认 VLAN业务流量、设备管理、广播报文全都混在一起一方面有安全隐患另一方面万一业务 VLAN 出了广播风暴管理面也会被拖死。更好的做法是单独划分一个管理 VLAN比如 VLAN 100把管理 IP 配置在interface vlanif 100下面然后只让管理网段的接口加入这个 VLAN。这样做的好处是管理和业务流量天然隔离排障、抓包都干净。规划管理 IP 时我一般会预留几段给设备管理使用比如 192.168.100.0/24。核心交换机的管理 IP 固定为 192.168.100.10接入交换机的管理 IP 从 192.168.100.11 开始往下排同时在核心交换机上记录一份 IP-MAC 对应表方便日后维护。3. 一步一步开启 telnet 登录3.1 打开 telnet 服务在旧版本 VRP 上开启 telnet 服务的命令很简单system-view telnet server enable但部分新版本里命令变成了telnet ipv4 server enable这是因为设备开始支持只对 IPv4 或只对 IPv6 开启 telnet。如果你输telnet server enable报错就试试完整写法telnet ipv4 server enable配置完可以用下面命令确认服务状态display telnet server status3.2 配置 VTY 认证方式和用户telnet 服务开启之后需要告诉设备“谁来登录、怎么认证”。现在普遍推荐用 AAA 认证因为 AAA 支持独立配置用户等级、登录协议、密码策略比简单的 password 认证灵活得多。user-interface vty 0 4 authentication-mode aaa protocol inbound telnet quit aaa local-user admin password irreversible-cipher Huawei123 local-user admin service-type telnet local-user admin privilege level 15 quit这几条命令是关键我逐个讲一下。local-user admin password创建了一个本地用户 admin并设置密码。注意现在新版本推荐用irreversible-cipher也就是不可逆加密保存密码旧版本常用cipher安全性要弱一些。service-type telnet指定这个用户只能通过 telnet 登录。如果后面要让他走 SSH这一行必须加上 SSH否则会在登录时直接被拒绝。privilege level 15把用户等级提到最高。华为设备默认等级是 0 到 15等级 15 才能进入系统视图并进行全部配置操作。如果用户等级低于 3即使登录成功也进不了system-view只能看看状态信息。3.3 从电脑实测 telnet 登录配置完成后在电脑的命令行窗口输入telnet 192.168.100.10如果一切正常会提示输入用户名和密码输入 admin 和密码后进入用户视图提示符变成SW-Core。如果要进入配置界面system-view提示符会变成[SW-Core]这时候就可以开始配 VLAN、接口了。我踩过的坑Windows 系统默认没装 telnet 客户端输入telnet命令会提示不是内部或外部命令。解决办法是去“控制面板 - 程序和功能 - 启用或关闭 Windows 功能”里勾选“Telnet 客户端”或者直接用第三方终端工具比如 PuTTY、SecureCRT、MobaXterm。另外一个更容易忽略的问题telnet 使用的是 23 端口如果 PC 和交换机之间有防火墙或者交换机上配置了 ACL 限制 VTY 访问也会导致连接失败。所以配置完 telnet 后我一般都会立刻用另一台终端的telnet命令回测一遍确认服务真的在监听。4. 切换到 SSH更安全也更严谨4.1 启用 STelnet 服务并生成密钥华为交换机的 SSH 实现叫 STelnetSecure Telnet本质就是 SSH 服务。开启之前设备必须先生成一对本地 RSA 密钥用于 SSH 握手加密。如果设备之前从来没生成过密钥直接执行system-view stelnet server enable rsa local-key-pair create生成本地密钥对时系统会提示选择密钥长度。我一般选 2048 位位数太短不安全太长握手慢。生成过程如果提示已经存在密钥可以先删掉再重建或者直接沿用已有密钥。生成完密钥后SSH 服务才算真正可以工作可以用下面的命令检查display rsa local-key-pair public4.2 配置 SSH 用户认证接下来配置用户。SSH 用户和 telnet 用户一样也建立在 AAA 本地用户体系里但必须额外指定 SSH 相关的属性user-interface vty 0 4 authentication-mode aaa protocol inbound ssh quit aaa local-user admin password irreversible-cipher Huawei123 local-user admin service-type ssh local-user admin privilege level 15 quit ssh user admin ssh user admin authentication-type password ssh user admin service-type stelnet这里需要注意几个坑。第一protocol inbound ssh一旦配置VTY 线路就只接受 SSH 连接telnet 会被直接拒绝。如果你还没有完成 SSH 调试最好先把协议改成all全部调通后再收紧。第二local-user admin service-type ssh和ssh user admin service-type stelnet是两个层面的配置前者是 AAA 用户的服务类型后者是 SSH 域里用户授权的服务类型。少了任何一个登录时都有可能报错。第三ssh user admin authentication-type password指定 SSH 用户认证方式为密码认证。如果做密钥认证则要写成ssh user admin authentication-type rsa ssh user admin assign rsa-key admin-rsa后面这种方式需要先把客户端公钥传到交换机上配置逻辑不同。4.3 从电脑用 SSH 连接交换机配置完成后在电脑上使用 SSH 客户端连接ssh admin192.168.100.10第一次连接时SSH 客户端会提示确认主机指纹输入 yes 继续然后输入密码就能进入交换机的用户视图。如果使用密钥认证连接会直接跳过头像密码验证。常用 SSH 客户端有很多系统自带的 OpenSSH、PuTTY、Bitvise SSH Client、MobaXterm 都可以。我平时在 Windows 上喜欢用 MobaXterm保存会话方便多设备管理省事。4.4 SSH 密钥登录配置实操如果你嫌每次输密码麻烦或者想更安全一点可以做密钥认证。先在自己的电脑上生成一对 RSA 密钥ssh-keygen -t rsa -b 2048默认会生成在当前用户家目录的.ssh目录下比如/root/.ssh/id_rsa和/root/.ssh/id_rsa.pub。公钥文件内容是ssh-rsa 一串字符的形式。把公钥设法传到交换机上有两种常见方式。如果交换机本身支持 SCP可以直接用 scp 把公钥上传但对于普通管理员来说最稳妥的还是把公钥内容复制出来通过 console 或者已有 SSH 会话进入交换机手动粘贴。system-view rsa peer-public-key admin-rsa public-key-code begin ssh-rsa AAAAB3NzaC1yc2E... 这里粘贴公钥内容注意换行格式 public-key-code end quit ssh user admin authentication-type rsa ssh user admin assign rsa-key admin-rsa粘贴公钥的时候一定不要漏字符也不要多换行否则设备解析会失败。配置完成后重新用 SSH 连接就能免密登录。4.5 客户端常见 SSH 报错处理有一次我帮同事调设备电脑明明能 ping 通管理 IP但 SSH 始终连不上最古怪的是提示shell request failed on channel 0。网上搜了一圈原因五花八门有说 SSH 服务端不支持老版本客户端的有说用户权限不够的。后来我发现问题出在 VTY 配置和用户 service-type 不一致上。当时设备 VTY 已经限制为只允许 SSH但 AAA 用户的service-type里没包含 SSH导致客户端握手成功但分配不到可用的交互 shell于是报 shell request failed。调整用户 service-type 后问题立刻消失。所以遇到 SSH 能连但登不进系统的情况优先检查四件事第一AAA 用户 service-type 是否包含 ssh第二ssh user 是否指定了 service-type stelnet第三用户是否有足够权限至少 level 3第四VTY 线路的协议策略是否正确。5. 密码管理从初始化到日常维护5.1 通过 console 修改本地登录密码很多人遇到的问题是远程登录密码忘了或者刚配置完用户密码但不小心把密码写在配置里没保存重启后设备又变回老密码。这时候只要还能通过 console 线进设备修改密码其实不难。用 console 线连接设备在用户视图下进入系统视图system-view aaa local-user admin password irreversible-cipher NewPass123 quit quit save修改完密码后一定要记得保存配置否则设备一重启又回到修改前的状态。save命令执行后会提示是否保存输入 y 确认。5.2 忘记远程密码后的恢复思路如果 console 还能进密码修改就是上面的路子。真正棘手的是 console 密码也忘了这时可以通过设备的启动菜单重置。华为设备重启时在出现启动进度条之前按 CtrlB 进入 BootROM/BIOS 菜单不同版本提示可能不一样但都会有一个“跳过配置文件启动”或类似的选项。选择该选项后设备会以空配置启动相当于暂时绕过了原来保存的配置。进入系统后重新配置管理地址和用户密码然后保存配置。注意启动菜单千万不能乱选“恢复出厂设置”或者“清除配置”除非你确定要清空整台设备。我见过有人想找回密码结果把整台交换机的配置全删了最后只能重新一条条敲。按这个思路密码找回的恢复步骤大致是这样的1. 重启设备在提示出现时按 CtrlB 进入启动菜单 2. 选择跳过配置文件启动不同型号菜单编号不同 3. 设备进入空配置状态用 console 正常登录 4. 重新配置 VTY、认证、用户密码 5. 配置管理 IP 并保存配置5.3 用户权限等级要理解清楚华为设备里用户权限等级非常重要。等级分为 0 到 150 级只能看极少量命令1 级可以看状态3 级能进系统视图做基础配置15 级是最高权限几乎什么都能操作。有的运维图省事把所有用户都设成 15 级结果某次误操作把端口全部 shutdown 了。我个人建议是维护账号给 15 级没毛病但给同事开只读账号时等级设成 1 或者 3 就够了防止误操作酿成大事故。6. 常用排障命令与问题速查6.1 telnet/ssh 连接失败原因速查表远程登录连不上新手最容易慌其实顺着链路排查就行了。我从物理层到应用层列了一个表排查时候对号入座。现象常见原因排查命令/思路ping 不通管理 IPVLANIF 不存在、接口不在管理 VLANdisplay ip interface brief23 端口无响应telnet server not enableddisplay telnet server status22 端口无响应stelnet server 没开display ssh server status密码错误反复提示用户配置错误或密码策略过期通过 console 进 AAA 重置密码提示用户认证失败local-user 的 service-type 不包含对应协议查看 aaa 下用户配置登录后无法进入 system-view用户权限等级低于 3local-user xxx privilege level 15提示所有 VTY 线路被占用在线会话达到上限display usersSSH 连接后 shell request failedservice-type 配置不一致检查 ssh user 的 service-type连接被重置或断开ACL 限制、管理 IP 冲突display acl all、扫 IP 冲突6.2 登录后查看设备信息与日志配置完登录后先别急着配业务建议先看一眼设备基本信息心里有底。display version display current-configuration display device看运行状态用display interface brief display logbufferdisplay logbuffer会显示设备日志缓存如果之前远程登录失败过这里可能有相关记录。生产环境建议配合日志服务器做日志审计交换机的日志信息通过info-center loghost可以外发到日志服务器。如果只是临时排查问题display trapbuffer可以看近期告警信息display alarm能看设备硬件告警。6.3 一条很实用的过滤命令dis mac | in broad搜索关键词里有“华为交换机 dis mac | in broad”这条命令其实是过滤查看 MAC 地址表里的广播 MAC。display mac-address | include BROADCAST在二层网络里广播 MACFFFF-FFFF-FFFF不会正常出现在单播 MAC 表里如果大量存在说明网络里可能有广播泛洪或者环路。配合display interface brief看端口收发计数基本能定位到具体接口。还有一个更常用的是查看某个 VLAN 下学到的 MACdisplay mac-address vlan 10排查 IP 冲突和终端无法上网时这条命令比 telnet 命令本身更有用。6.4 登录后管理能力增强的一些小习惯远程登录调通以后我建议顺手做两件事。第一限制 VTY 访问来源。通过 ACL 只允许管理网段访问 VTY等于给远程登录加了白名单。配置如下acl number 2001 rule 5 permit source 192.168.100.0 0.0.0.255 rule 10 deny quit user-interface vty 0 4 acl 2001 inbound quit这样配置之后只有源 IP 在 192.168.100.0/24 网段的终端才能远程登录交换机其他来源一律拒绝。第二给管理 IP 做好 MAC 绑定避免 IP 被别人占用导致管理地址冲突。interface vlanif 100 arp learning strict quit更严格的方式是在接入交换机上配置基于接口的 MAC 绑定但这个要根据现场需求来基础配置阶段先把管理和业务隔离做好就行。7. 扩展多部门子网划分与 VLAN 规划实操思路7.1 5 个部门、5 个子网怎么划很多公司网络会按部门划分 VLAN把不同部门隔到独立子网既能隔离广播也方便做权限控制。假设公司有 5 个部门A 部门需要容纳 100 台主机B 部门 50 台C 部门 20 台剩下两个部门规模先按 30 台估。这种需求下不能所有部门都无脑配一个 /24 网段。如果只有三五十台设备的网络/24 浪费点也无所谓但到了上百台、多个部门的规模就得合理规划子网。的计算方式很简单主机位长度为 n 时可用 IP 数是 2 的 n 次方减 2。100 台主机需要 7 位主机位因为 2 的 7 次方减 2 等于 126刚好够用对应掩码 255.255.255.128也就是 /25。50 台主机需要 6 位主机位对应 /26。20 台需要 5 位主机位对应 /27。部门VLAN网段掩码主机位可用IP数A部门VLAN 10192.168.10.0255.255.255.1287126B部门VLAN 20192.168.20.0255.255.255.192662C部门VLAN 30192.168.30.0255.255.255.224530D部门VLAN 40192.168.40.0255.255.255.224530E部门VLAN 50192.168.50.0255.255.255.224530如果现场还有其他部门建议预留一整段地址比如 192.168.60.0/24 和 192.168.70.0/24方便后续扩容。7.2 核心交换机上的 VLANIF 配置规划好子网后在三层交换机上创建 VLAN 并配 VLANIF 地址部门网关就落在交换机上。system-view vlan batch 10 20 30 40 50 interface vlanif 10 ip address 192.168.10.1 255.255.255.128 quit interface vlanif 20 ip address 192.168.20.1 255.255.255.192 quit interface vlanif 30 ip address 192.168.30.1 255.255.255.224 quit interface vlanif 40 ip address 192.168.40.1 255.255.255.224 quit interface vlanif 50 ip address 192.168.50.1 255.255.255.224 quit如果交换机是三层交换机VLANIF 之间默认就能路由不需要额外配静态路由。但要注意如果交换机本身跑在 VRF 里或者有多个虚拟路由转发实例那就需要单独处理路由引入的问题。这个属于进阶场景基础阶段先把 VLANIF 配好、部门互访测通即可。7.3 接入交换机接口划分示例在接入交换机上需要把端口划分到对应部门 VLAN。比如 A 部门的电脑接在接口 1 到 24 上那么把这些接口设为 access并指定默认 VLANsystem-view vlan batch 10 interface GigabitEthernet 0/0/1 port link-type access port default vlan 10 quit如果是多台交换机级联接入交换机和核心交换机之间的互联口需要配置成 trunk允许对应 VLAN 通过interface GigabitEthernet 0/0/25 port link-type trunk port trunk allow-pass vlan 10 20 30 40 50 quittrunk 口的作用就是帮不同 VLAN 的流量跨交换机传输。如果不放行 VLAN就算接口配置对了部门内部通信也会断。链路聚合也是实际项目中经常遇到的把多个物理口绑成一个逻辑口既能增加带宽又能做冗余。不过基础阶段先确保 VLAN 和 trunk 是通的再考虑链路聚合不迟。8. 一些值得养成的好习惯最后分享几个远程登录配置方面的个人习惯算不上什么高深技术但能少踩很多坑。第一新设备上来第一件事就是配好远程登录和密码策略不要等到业务上架了再补。很多事故都是因为设备裸奔在网络上被人扫描到 23/22 端口然后暴力破解。第二远程登录调通之后随手把save敲了。我见过太多人配置完不保存结果设备断电重启所有配置一夜回到解放前。第三不要用 admin/admin123、Huawei123 这种弱密码。密码至少 12 位包含大小写字母、数字和特殊字符。华为设备支持的irreversible-cipher虽然能防止密码明文泄露但也架不住弱密码被猜。第四给 VTY 加上 ACL只允许管理网段访问。这句话前面提到过但值得再强调一次。远程管理接口暴露给全网段等于把大门钥匙挂在门口。第五console 线一定要随身带一根。远程登录配置再完善也总有需要现场介入的时候比如设备配置错了导致远程断开、VTY 被占满、IP 冲突这时候 console 是唯一救命的通道。我在实际工作中最常遇见的问题不是配置命令不会敲而是配置命令之间互相矛盾。vty 只允许 SSH 但用户 service-type 没加 ssh前面说过ACL 放行方向写反了导致管理网段也访问不到这些都是细节里的魔鬼。把链路从头到尾捋一遍问题基本都能解决。如果你照着这篇文章把 telnet 或 SSH 调通了恭喜你华为交换机的基础配置你已经掌握了一半。剩下的一半就是 VLAN、路由、ACL、链路聚合这些业务配置思路是相通的。