现场工程师反馈一台S556X-30C-EI交换机之前使用SSH登录S5130交换机是正常的。后来由于客户将S5130的设备销毁了本地的密钥local key之后导致S556X-30C-EI交换机SSH登录S5130设备失败。接下来针对这个问题进行分析和讨论。
本次涉及交换机的型号以及版本: S5560X-30C-EI Version 7.1.070, Release 1110P01。
下面是现场工程师SSH登录S5130交换机时候的报错信息:
<BGL2_H3C5560_IRF20>ssh 11.102.0.3
Username: chendexi
Press CTRL+C to abort.
Connecting to 11.102.0.3 port 22.
The server&#39;s host key does not match the local cached key. Either the server administrator has changed the host key, or you connected to another server pretending to be this server. Please remove the local cached key, before logging in!
1. 分析报错信息
根据现场反馈的操作记录如下:
S556X-30C-EI交换机上操作如下:
<BGL2_H3C5560_IRF20>ssh 11.102.0.3 //登录设备
Username: chendexi
Press CTRL+C to abort.
Connecting to 11.102.0.3 port 22.
The server&#39;s host key does not match the local cached key. Either the server administrator has changed the host key, or you connected to another server pretending to be this server. Please remove the local cached key, before logging in! //报错提示
<BGL2_H3C5560_IRF20>dis public-key peer //本地查看缓存的密码确实是空的,正常情况下如果缓存的话应该会有显示内容的。
<BGL2_H3C5560_IRF20>sys
System View: return to User View with Ctrl+Z.
[BGL2_H3C5560_IRF20]undo public-key peer 11.102.0.3 //删除设备缓存的对方的密钥
[BGL2_H3C5560_IRF20]quit
<BGL2_H3C5560_IRF20>ssh 11.102.0.3 //重新登录设备
Username: chendexi
Press CTRL+C to abort.
Connecting to 11.102.0.3 port 22.
The server&#39;s host key does not match the local cached key. Either the server administrator has changed the host key, or you connected to another server pretending to be this server. Please remove the local cached key, before logging in! //设备依然报错,说明还是我们设备的key和对方设备本地密钥不匹配导致的。
2. 确认故障原因
通过上面的现象来看,现场工程师的操作都是没有问题的,但是问题还是定位在S556X-30C-EI交换机上。
经分析,原因是S556X-30C-EI交换机软件特定变更了。在之前的交换机SSH2登陆服务器时,如果是首次连接,会提示用户是否保存服务器公钥,公钥保存在配置文件中。SSH2登陆时,默认从配置文件读取服务器公钥。
更改之后的特性为SSH2登陆服务器时,如果是首次连接,会提示用户是否保存服务器公钥,由SSH客户端保存在特定文件,该文件不受配置文件影响,即配置恢复等操作不影响保存的这种方式服务器公钥。SSH2登陆服务器,默认从SSH客户端保存的特定文件中读取公钥。
下面是关于命令特性变更的说明:
新增命令:
【命令】:display ssh client server-public-key [ server-ip ip-address ]
【视图】:任意视图
【描述】: 显示客户端保存在特定文件中的服务器公钥;区别于之前的公钥模块,公钥模块显示命令为display public-key peer。
【命令】:delete ssh client server-public-key [ server-ip ip-address ]
【视图】:系统视图
【描述】: 删除客户端保存在特定文件中的服务器公钥;区别于之前的公钥模块,公钥模块删除命令为undo public-key peer。
【原特性缺省】: ssh2 登陆服务器时,如果是首次连接,会提示用户是否保存服务器公钥,公钥保存在配置文件中。ssh2 登陆时,默认从配置文件读取服务器公钥。
【修改后的特性缺省】:1)ssh2 登陆服务器时,如果是首次连接,会提示用户是否保存服务器公钥,由ssh客户端保存在特定文件,该文件不受配置文件影响,即配置恢复等操作不影响保存的这种方式服务器公钥。2)ssh2登陆服务器,默认从ssh客户端保存的特定文件中读取公钥
【升级影响】: 1) ssh2首次连接服务器时,服务器公钥由ssh客户端进程保存在特定文件中,不再保存到配置文件中。 2) 如果指定public-key关键字,即 ssh2 1.1.1.1 public-key ser1 ,仍使用配置文件中的公钥;需要注意的是,服务器公钥ser1需要用public-key peer命令导入,之前的首次登陆即自动保存为public-key peer的方式不再使用。
由于软件特定变更了,现场应用场景应该使用delete ssh client server-public-key [ server-ip ip-address ]删除本地缓存的密钥。
通过以上的分析,让现场工程师在S556X-30C-EI上面执行使用delete ssh client server-public-key 11.102.0.3进行本地缓存密钥的删除,现场删除后问题解决。
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作