1. 为什么你需要SSH远程管理交换机?
如果你是一名网络管理员,或者正在学习网络技术,那你肯定有过这样的经历:为了改一个配置,或者查看一下端口状态,不得不跑到机房,在那一堆嗡嗡作响的设备里找到那台交换机,插上console线,然后猫着腰在狭小的空间里操作。夏天一身汗,冬天冻得哆嗦,效率还特别低。更别提那些交换机放在不同楼层、甚至不同城市的情况了,跑一趟简直是噩梦。
这时候,SSH远程登录就是你的救星。它就像给你的交换机装上了一扇安全的“远程控制门”。你只需要坐在自己舒适的工位上,打开电脑,输入交换机的IP地址,就能像在本地一样进行所有配置和管理操作。这不仅仅是方便,更是现代网络运维的标准做法和效率倍增器。
那么,为什么是SSH,而不是更早的Telnet呢?这里有个关键区别:安全性。Telnet传输的所有数据,包括你的用户名和密码,都是“明文”的,就像你在大街上用喇叭喊出自己的银行卡密码一样,非常危险。任何能截获你网络数据包的人都能轻松看到你的密码和所有操作命令。而SSH则不同,它会在你和交换机之间建立一条加密的隧道,所有信息在传输前都被打乱加密,即使被截获,看到的也是一堆乱码,无法破解。所以,在今天的网络环境里,使用Telnet几乎等同于“裸奔”,而SSH则是必备的“安全盔甲”。
华为交换机对SSH的支持非常完善,配置过程其实并不复杂,但里面有一些细节和“坑”如果没注意到,就会导致连接失败。接下来,我就用一个最贴近实际工作的场景,手把手带你走一遍从零开始配置华为交换机SSH远程登录的全过程,保证你跟着做一遍就能彻底掌握。
2. 实战前的准备工作与思路梳理
在真正动手敲命令之前,花几分钟做好准备工作,能让你事半功倍,避免很多低级错误。这就像木匠干活前要先磨好刀一样。
首先,你需要确定你的连接方式。绝大多数情况下,你第一次配置交换机时,手里只有一根Console线(也叫配置线)。这是一根一头是网口(或USB口)接电脑,另一头是串口(RJ-45)接交换机Console口的蓝色线缆。通过它,你可以使用像Putty、SecureCRT或者系统自带的终端工具,以最底层的方式登录交换机。这是我们所有配置的起点,没有Console连接,后续一切免谈。
其次,规划好网络地址。交换机不会自己产生IP地址,我们必须手动为它配置一个管理IP。这个IP地址需要和你的办公电脑在同一个网段。举个例子,如果你的电脑IP是192.168.1.100,子网掩码255.255.255.0,那么交换机的管理IP就可以设为192.168.1.10。这样,你的电脑才能和交换机“对话”。在实际项目中,管理地址通常有专门的VLAN,比如VLAN 99或VLAN 255,我们这里为了演示简单,就使用一个普通的VLAN。
最后,准备好你的SSH客户端软件。在电脑上,你需要一个工具来发起SSH连接。最常用的就是Xshell和PuTTY。它们都是免费且功能强大的终端软件。我个人更习惯用Xshell,它的界面更友好,会话管理功能也更方便。本文后面的验证环节就会用Xshell来演示。
注意:请务必从官方网站下载这些软件,避免安装被篡改的版本,以防安全风险。
理清了思路,我们的配置路径就很清晰了:
- 通过Console线连接交换机,进入配置视图。
- 为交换机配置一个可用的管理IP地址。
- 开启交换机的SSH服务器功能。
- 创建用于SSH登录的用户,并设置密码和权限。
- 配置虚拟终端线路(VTY),只允许通过SSH协议登录。
- 用电脑上的SSH客户端进行测试验证。
下面,我们就进入激动人心的实战配置环节。
3. 从零开始:详细配置步骤拆解
现在,假设我们面前有一台全新的华为S5700系列交换机,名字还是默认的“Huawei”。我们的目标是为它配置SSH,并最终用电脑远程登录管理。
3.1 第一步:基础IP地址配置
任何网络设备要能被远程访问,首先得有个“门牌号”,也就是IP地址。对于二层交换机,它的IP地址是配置在逻辑接口(VLANIF接口)上的,而不是物理端口上。这意味着我们需要先创建一个VLAN,然后把一个物理端口划到这个VLAN里,最后再给这个VLAN配置IP。
打开你的终端软件,用Console线连接好交换机,你会看到类似<Huawei>的提示符。这表示你正处于用户视图,可以执行一些查看命令,但不能进行配置。我们需要进入系统视图。
<Huawei>system-view [Huawei]输入system-view(可以简写为sys)后,提示符变成了[Huawei],这说明我们已经进入了全局配置模式。
首先,给交换机改个容易识别的名字是个好习惯,尤其是在管理多台设备时。
[Huawei]sysname SW1 [SW1]现在交换机名字变成了SW1。接下来,我们关闭烦人的信息中心提示,让界面更干净(这条命令在实际生产环境中可根据需要决定是否关闭)。
[SW1]undo info-center enable然后,开始创建VLAN。我们假设使用VLAN 137作为管理VLAN。
[SW1]vlan 137 [SW1-vlan137]创建VLAN后,系统自动进入了VLAN 137的配置视图。接着,我们需要指定一个物理端口属于这个VLAN。假设我们使用第一个千兆电口GigabitEthernet 0/0/1。
[SW1-vlan137]interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access [SW1-GigabitEthernet0/0/1]port default vlan 137 [SW1-GigabitEthernet0/0/1]quit这里解释一下:port link-type access命令把这个端口设置为接入模式,这种模式的端口通常用于连接电脑、服务器等终端设备,它只能属于一个VLAN。port default vlan 137则把这个端口划归到VLAN 137。
最后,也是最关键的一步,为VLAN 137这个逻辑接口配置IP地址,这就是交换机的管理IP。
[SW1]interface Vlanif 137 [SW1-Vlanif137]ip address 192.168.137.10 24 [SW1-Vlanif137]quitip address 192.168.137.10 24这行命令的意思是,设置IP为192.168.137.10,子网掩码是255.255.255.0(24是子网掩码前缀的简写形式)。配置完成后,记得用quit命令退回到上一级视图。
3.2 第二步:激活SSH服务器功能
默认情况下,华为交换机的SSH服务器功能是关闭的,我们需要手动开启它。这个命令非常简单。
[SW1]stelnet server enable是的,在华为设备里,SSH服务的命令关键字是stelnet,它指的就是SSH协议。执行这条命令后,交换机就开始监听标准的22号端口,等待SSH客户端的连接了。
3.3 第三步:创建SSH用户并设置认证
现在我们要创建一个允许通过SSH登录的用户。假设用户名叫admin。创建用户本身很简单,但这里有一个非常重要的概念需要理解:在华为设备上,用户管理分为两部分。
第一部分是“SSH用户”,它告诉交换机“有一个叫admin的用户被允许使用SSH服务”。但这只是一个“许可”,并没有包含密码信息。
[SW1]ssh user admin [SW1]ssh user admin authentication-type password [SW1]ssh user admin service-type stelnet这三条命令依次完成了:创建SSH用户admin、指定其认证方式为密码认证、指定其服务类型为SSH(stelnet)。
第二部分是“AAA本地用户”,这才是真正存放用户密码和权限的地方。AAA是一个认证、授权、计费的框架,我们这里只用它最基本的本地用户数据库功能。
[SW1]aaa [SW1-aaa]local-user admin password cipher Admin@123 [SW1-aaa]local-user admin privilege level 15 [SW1-aaa]local-user admin service-type ssh [SW1-aaa]quit进入aaa视图后:
local-user admin password cipher Admin@123:创建本地用户admin,并设置其加密密码为Admin@123。cipher关键字表示密码会以加密形式存储。local-user admin privilege level 15:设置用户的权限等级为15,这是最高权限等级,拥有所有操作权限。在实际工作中,应根据“最小权限原则”分配合适的等级。local-user admin service-type ssh:指定该本地用户可用于SSH服务。
一定要把“SSH用户”和“AAA本地用户”关联起来,它们通过相同的用户名(这里是admin)进行关联。交换机在收到SSH登录请求时,会先检查SSH用户列表里有没有admin,如果有,再去AAA本地用户数据库里核对密码和权限。
3.4 第四步:配置VTY线路,只允许SSH登录
VTY(Virtual Type Terminal)是设备的虚拟终端线路,是远程登录(如Telnet、SSH)的入口。我们可以把它想象成设备对外开设的“接待窗口”。默认情况下,这些窗口可能允许多种协议,我们现在要把它改成只接待SSH协议的客人。
华为交换机通常有0到4共5个VTY线路(不同型号可能数量不同),我们可以一次性批量配置它们。
[SW1]user-interface vty 0 4 [SW1-ui-vty0-4]authentication-mode aaa [SW1-ui-vty0-4]protocol inbound ssh [SW1-ui-vty0-4]quitauthentication-mode aaa:将VTY线路的认证模式设置为AAA认证。这意味着当有人尝试通过VTY登录时,交换机会要求其提供用户名和密码,并交给我们刚才配置的AAA本地用户数据库去验证。protocol inbound ssh:这条命令是安全加固的关键。它规定这些VTY线路只接受SSH协议的入站连接,彻底禁用了不安全的Telnet。配置后,你再尝试用Telnet连接,会直接被拒绝。
至此,交换机上的所有配置就完成了!别忘了保存配置,否则设备重启后就白忙活了。
[SW1]save The current configuration will be written to the device. Are you sure to continue?[Y/N]y输入y确认保存。
4. 连接验证与排错指南
配置写完了,但到底成不成功,还得拉出来遛遛。我们回到办公电脑上,进行最终的测试。
4.1 使用Xshell进行连接测试
首先,确保你的电脑网线连接到了交换机的GigabitEthernet 0/0/1口,并且电脑的IP地址设置在了192.168.137.0/24网段(例如192.168.137.100)。
打开Xshell,点击“新建会话”。在连接设置里,协议选择“SSH”,主机填写交换机的管理IP192.168.137.10,端口保持默认的22。
点击连接后,会弹出一个SSH安全警告,这是第一次连接陌生主机时的正常现象,它提示你正在连接一个未知的服务器密钥。勾选“接受并保存”即可。
接下来,会弹出登录窗口。用户名输入我们刚才创建的admin,密码输入Admin@123。
如果一切配置正确,几秒钟后,你就会看到熟悉的命令行提示符了!
Connecting to 192.168.137.10:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Info: The max number of VTY users is 5, and the number of current VTY users on line is 1. The current login time is 2023-10-27 15:30:00. <SW1>看到<SW1>这个提示符,恭喜你!这说明你已经成功通过SSH远程登录到了华为交换机上。现在,你可以执行display current-configuration等任何你有权限的命令,就像坐在机房操作一样。
4.2 常见问题与排查思路
当然,实战中很少有一次就成功的。下面我列举几个我踩过的“坑”,以及排查方法。
问题一:连接被拒绝(Connection refused)
- 现象:Xshell提示“无法连接到服务器”或“连接被拒绝”。
- 排查:
- 检查物理连接和IP:首先确认电脑和交换机之间的网线是通的,电脑IP配置正确,且与交换机IP在同一网段。可以用
ping 192.168.137.10测试连通性。如果ping不通,先解决三层可达性问题。 - 检查SSH服务是否开启:在交换机上执行
display ssh server status,查看“SSH server”状态是否为“Enable”。如果不是,回去检查stelnet server enable命令是否执行并保存了。 - 检查VTY配置:执行
display user-interface vty 0 4,查看“Protocol inbound”一栏是不是“SSH”。如果显示“All”或“Telnet”,说明protocol inbound ssh命令没生效。
- 检查物理连接和IP:首先确认电脑和交换机之间的网线是通的,电脑IP配置正确,且与交换机IP在同一网段。可以用
问题二:密码认证失败(Authentication failed)
- 现象:输入用户名密码后,提示认证失败。
- 排查:
- 检查AAA本地用户:在交换机上执行
display local-user,查看用户admin是否存在,Service-type是否包含ssh。 - 检查密码:确认输入的密码无误,注意大小写。在配置时,密码是加密存储的,无法直接查看,但可以尝试重新设置一次密码:
local-user admin password cipher 你的新密码。 - 检查SSH用户关联:执行
display ssh user-information,确认用户admin是否存在,且认证类型为password。
- 检查AAA本地用户:在交换机上执行
问题三:用户权限不足
- 现象:登录成功了,但很多命令(比如
system-view)无法执行,提示权限不足。 - 排查:这显然是用户权限等级没配置对。检查AAA本地用户的权限等级:
display local-user,看admin用户的Privilege等级是否为15。如果不是,使用local-user admin privilege level 15命令修改。
一个超级实用的排错命令:display current-configuration | include ssh|user-interface vty|local-user admin。这条命令可以一次性过滤出配置中所有与SSH、VTY和admin用户相关的配置行,让你快速核对关键配置是否正确,比翻看全部配置要高效得多。
5. 安全加固与高级配置建议
基础的SSH配置能用了,但如果你想让它更安全、更专业,下面这些进阶操作值得你花时间了解一下。
5.1 使用密钥认证替代密码认证
密码认证有被暴力破解或嗅探的风险(虽然SSH加密了传输)。更安全的方式是使用公钥认证。原理是:你在电脑上生成一对密钥(公钥和私钥),把公钥上传到交换机上。登录时,交换机用公钥加密一个随机数发给你,你的电脑用私钥解密后再发回去,完成认证。私钥永远不离开你的电脑。
- 在电脑上生成密钥对(以Xshell为例):打开Xshell,点击“工具”->“用户密钥管理者”->“生成”。选择RSA类型,密钥长度2048位或以上。生成后,你会得到一个私钥(自己保存好)和对应的公钥。
- 在交换机上配置:
然后,你需要将电脑上生成的公钥内容(一段很长的字符串)复制出来,在交换机上导入。[SW1]rsa local-key-pair create ...(按提示输入密钥长度,如2048) [SW1]ssh user admin authentication-type rsa [SW1]ssh user admin assign rsa-key
配置完成后,AAA本地用户的密码就可以删除了([SW1]rsa peer-public-key admin_key [SW1-rsa-public-key]public-key-code begin ...(在此处粘贴你的公钥内容) [SW1-rsa-public-key]public-key-code end [SW1-rsa-public-key]peer-public-key end [SW1]ssh user admin assign rsa-key admin_keylocal-user admin password命令),登录时Xshell会选择使用密钥文件登录,无需输入密码。
5.2 修改默认SSH端口
黑客经常扫描22端口,尝试暴力破解。修改默认端口能减少这类“噪音”攻击。
[SW1]ssh server port 1022这条命令将SSH服务端口改为1022。之后在Xshell连接时,端口号就需要相应改为1022。注意:修改端口后,务必在防火墙(如果有)上放行新端口。
5.3 配置访问控制列表(ACL)限制源IP
最严格的安全策略是:只允许来自特定管理终端的IP地址进行SSH连接。这需要通过ACL来实现。
[SW1]acl 2000 [SW1-acl-basic-2000]rule 5 permit source 192.168.137.100 0 //允许你的办公电脑IP [SW1-acl-basic-2000]rule 10 deny source any //拒绝其他所有IP [SW1-acl-basic-2000]quit [SW1]user-interface vty 0 4 [SW1-ui-vty0-4]acl 2000 inbound //在VTY线路上应用ACL [SW1-ui-vty0-4]quit这样,即使攻击者知道了密码和IP,只要不是从192.168.137.100这个地址发起的连接,也会在第一步就被ACL拒绝掉,安全性大大提升。
配置完这些高级功能,你的华为交换机SSH管理环境就已经达到了一个比较专业和安全的水平。记住,网络运维,“稳”字当头,而安全是“稳”的基石。每次配置变更前做好备份,修改时细心核对,你就能从容地驾驭这些网络设备,让它们为你高效可靠地工作。