第一次使用ssh连接服务器时,后台会发生什么

首次连接到服务器时,服务器会提示您确认已连接到正确的系统。以下示例使用ssh命令连接到名为host03的远程主机:

# ssh host03
The authenticity of host 'host03 (192.0.2.103)' can’t be
established. ECDSA key fingerprint is ...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'host03,192.0.2.103' (ECDSA) to the list of known hosts.

主机验证是OpenSSH的主要功能之一。该命令检查以确保您正在连接到您认为要连接的主机。输入yes时,客户端会将服务器的公共主机密钥附加到用户的〜/ .ssh / known_hosts文件中,并在必要时创建〜/ .ssh目录。下次连接到远程服务器时,客户端会将此密钥与服务器提供的密钥进行比较。如果按键匹配,则不会询问您是否要继续连接。

是什么原因导致Host key verification failed错误

如果有人试图诱骗您登录他们的计算机,以便他们可以嗅探您的SSH会话,您将收到类似于以下内容的警告:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
dd:cf:50:31:7a:78:93:13:dd:99:67:c2:a2:19:22:13.
Please contact your system administrator.
Add correct host key in /home/user01/.ssh/known_hosts to get rid of this message.
Offending key in /home/lcz/.ssh/known_hosts:7
RSA host key for 192.168.219.149 has changed and you have requested strict checking.
Host key verification failed.

如果收到这样的警告,请停止并确定是否有理由更改远程服务器的主机密钥(例如,是否已升级SSH或服务器本身是否已升级)。如果没有充分的理由更改主机密钥,请在解决该问题之前不要尝试连接到该计算机。

如何更正“主机密钥验证失败”错误

方法1 –手动删除旧密钥

1.在源服务器上,旧密钥存储在文件〜/ .ssh / known_hosts中

2.仅当此事件合法时,并且仅在确切知道SSH服务器为何提供其他密钥的情况下,才编辑文件known_hosts并删除不再有效的密钥条目。客户端/源服务器中的每个用户在其主目录中都有其自己的known_hosts,只需删除目标服务器的特定用户文件中的条目即可。例如:
–如果root希望通过ssh连接到服务器,则只需删除/root/.ssh/known_hosts文件中的条目即可。
–如果testuser要通过ssh连接到服务器,则删除文件/home/testuser/.ssh/known_hosts中的条目。

3.就我而言,我将从文件/home/user01/.ssh/known_hosts中删除目标服务器192.168.219.149的密钥(以红色突出显示)。

# vim /home/user01/.ssh/known_hosts
172.104.9.113 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLrY91bQOihgFZQ2Ay9KiBG0rg51/YxJAK7dvAIopRaWzFEEis3fQJiYZNLzLgQtlz6pIe2tj9m/Za33W6WirN8=
192.168.219.148 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCrY/m16MdFt/Ym51Cc7kxZW3R2pcHV1jlOclv6sXix1UhMuPdtoboj+b7+NLlTcjfrUccL+1bkg8EblYucymeU=
192.168.219.149 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCrY/m16MdFt/Ym51Cc7kxZW3R2pcHV1jlOclv6sXix1UhMuPdtoboj+b7+NLlTcjfrUccL+1bkg8EblYucymeU=

方法2 –使用ssh-keygen命令删除旧密钥

您也可以使用ssh-keygen命令删除旧密钥。下面是使用该命令的语法。

$ ssh-keygen -R [主机名| IP地址]

例如,在本例中,我们将使用IP地址删除旧密钥。

$ ssh-keygen -R 192.168.219.149
# Host 192.168.219.149 found: line 3
/home/user01/.ssh/known_hosts updated.
Original contents retained as /home/user01/.ssh/known_hosts.old

注意:如果您不清楚,为什么SSH服务器会提供不同的密钥,或者您的known_hosts文件不正确,或者有人必须调查此服务器和网络连接以了解意外更改的原因。

校验

如果远程服务器要求确认将新密钥添加到〜/ .ssh / known_host文件,则它确认您已成功删除了旧密钥。如果确认请求,则源计算机将新密钥添加到〜/ .ssh / known_host文件中。

$ ssh root@192.168.219.149
The authenticity of host '192.168.219.149 (192.168.219.149)' can't be established.
ECDSA key fingerprint is SHA256:V+iGp3gwSlnpbtYv4Niq6tcMMSZivSnYWQIaJnUvHb4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.219.149' (ECDSA) to the list of known hosts.

相关阅读

【chrome插件】03“Secure Shell App”Chrome中开启ssh一种什么体验... 对于拥有自己服务器的人来讲, ssh连接服务器是很常用的操作Linux用户一般通过命令搞定, windows用户需要下载额外的软件而对于Chrome用户, 我们可以使用ssh的插件Secure Shell App 优势: 插件免费, 安装方便软件轻量, 体积不足3Mchrome官方出品...
虚拟机 VMware Workstation 15.0.3 Pro for Windows ... 目前市场上有许多虚拟环境提供,有些放在易用性以上的功能,其他地方集成上面的稳定性。在独立且安全的虚拟化环境中评估新操作系统或新软件应用程序和补丁时,VMware Workstation Pro是最易于使用,速度最快,最可靠的应用程序。 主要功能包括: 强大的3D图形 - 支持Direc...
不同计算机操作系统的优点和缺点是什么?(Windows,Mac OS,Linux,Ubuntu等)... 对于初学者来说,Linux和Ubuntu是一回事。Ubuntu只是GNU / Linux操作系统的许多不同发行版之一。事实上,它实际上是Debian的衍生产品,Debian是一个已经存在很长时间的Linux发行版。 除此之外,一般来说: Windows是PC上最常用的操作系统,已有...
Ubantu18.04解决网易云音乐点击图标无法打开问题(亲测)... 安装玩网易云突然不能打开,只能在终端用root打开。 利用一下命令亲测有效。 1、sudo gedit /etc/sudoers 在最后面加一行:  用户名 ALL = NOPASSWD: /usr/bin/netease-cloud-music 注:用户名为当前登录用户名  2、su...

发表评论