月有阴晴圆缺,人有旦夕祸福。万万没想到,我今天竟然被华为交换机开启SSH被打败了。越想越气,一定要再学习一下。
eNSP上只有几台比较老旧的虚拟交换机(网络之路12:认识网络设备模拟器eNSP),试试能不能搞定。

先简单拉几台设备,配置互联IP地址如下:

从Windows测试到设备的可达性。

可达性正常,开始配置。
为了确保配置准确性,我还是到华为官网查了一下资料,只是这个V200R001的版本太老了,官网已经没有配置指导了。

不过比较神奇的是,S5700和S3700使用的V200R001版本在CE6800下面有配置,试一下能不能用。配置指导在“基础配置”章节下的“配置用户登录”中,找到“用户登录配置举例”就可以了。

照猫画虎配置一下,首先确认已经配置好了互联IP地址。然后配置SSH服务器的VTY用户界面,没有报错。
#
user-interface vty 0 4
authentication-mode aaa
user privilege level 15
protocol inbound ssh

注意到官网文档有说明,若配置登录协议为SSH,则设备将自动禁止Telnet功能。
然后在服务器端创建本地用户admin,将用户加入管理员组,并配置用户服务方式SSH。
#
aaa
local-user admin password simple admin
local-user admin privilege level 15
local-user admin service-type ssh

这里和指导有不一样的地方,不支持将用户加入管理员组的命令local-user huawei123 user-group manage-ug,改用local-user admin privilege level 15为用户授予最高权限。

然后,在服务器端创建SSH用户,并配置认证方式。
ssh user admin authentication-type password

生成SSH服务器公钥。
rsa local-key-pair create

使能STelnet功能,并配置用户的服务类型为STelnet。
#
stelnet server enable
ssh user admin service-type stelnet

尝试登录,果然失败了。

debug看一下。

里面有一条,Expected packet type:SSH2_MSG_KEXINIT, failed to read data from packet!交互失败,可能是加密算法的问题。看一下SSH服务器状态。

提示版本为1.99,直接连接失败。
尝试用会话连接一下。

可以连接成功,但是马上被服务器断开,报错为:Remote side sent disconnect message type 2 (protocol error): “The connection is closed by SSH server”。果然,是协议错误。
换成putty试一下。

果然,因为服务器版本太低,导致无法连接。
那就说明配置没有问题,整理一下。
#
user-interface vty 0 4
authentication-mode aaa
user privilege level 15
protocol inbound ssh
#
aaa
local-user admin password simple admin
local-user admin privilege level 15
local-user admin service-type ssh
#
ssh user admin authentication-type password
#
rsa local-key-pair create
#
stelnet server enable
ssh user admin service-type stelnet
在S3700上再验证一遍。

果然,配置没有问题,就是SSH版本过低的问题,如果遇到了可以尝试换个SSH软件终端试一下。
最后看一下CE6800的配置。直接使用配置有报错,重新整理一下。
#
user-interface vty 0 4
authentication-mode aaa
user privilege level 3
protocol inbound ssh
#
aaa
local-user admin@default password cipher Admin123.
local-user admin@default user-group manage-ug
local-user admin@default level 3
local-user admin@default service-type ssh
#
ssh user admin authentication-type password
#
rsa local-key-pair create
#
stelnet server enable
ssh user admin service-type stelnet
再次尝试登录,输入配置的密码却提示错误,这次两个软件一样了。

报错原因为:协商的cto-hmac和stoc-hmac是不安全的,建议禁用不安全的算法或升级客户端。该警告信息通常与使用OpenSSL库进行加密通信有关。在OpenSSL中,某些HMAC(Hash-based Message Authentication Code)算法被视为不安全,因此产生了这个警告。
然后我们使用一个稍微安全一点的算法。
ssh server hmac sha2_256
再次登录,这是我第一次遇到SSH远程登录还需要用户名带域的设备,华为万岁!

我又新建了一台CE6800,刷上同样的配置,使用先创建的CE6800去登录新的CE6800,直接一次就成功了!

有了上次的经验,我在MobaXterm中带域登录试一下,竟然也可以了。

该说不说,遥遥领先!
阅读原文