我需要模拟警告:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
我有两台 Linux 机器,当我ssh
从 Linux1 到 Linux2 时,ssh
接受并报告没有问题。
但因为一些测试,我想模拟 -标识已更改错误
那么我需要在远程服务器上编辑什么才能产生问题?
到目前为止我做了什么是更改两台机器上的 knpwn_hosts 但它不会产生问题。
我明白了:
key_read: uudecode AAAAB3NzaC1y3jrzG62xyHrb3qxc9eYpg1Cp1PrRElTFfYbEHsRfTZU21S8kO5/Tq+ED8=
failed
key_read: uudecode AAAAB3NzaC1y3jrzG62xyHrb3qxc9eYpg1Cp1PrRElTFfYbEHsRfTZU21S8kO5/Tq+ED8=
failed
The authenticity of host 'ste1 (10.106.164.111)' can't be established.
RSA key fingerprint is 84:82:2b:80:ca:3f:57:c7:8c:14:44:dd:b9:70:e5:d8.
Are you sure you want to continue connecting (yes/no)?
答案1
交换/更改主机条目,~/.ssh/known_hosts
以便为您的主机列出不正确的 IP 地址:
从:
192.168.0.10 ecdsa-sha2-nistp256 AAAAE2...kFr3pqkY=
192.168.0.20 ecdsa-sha2-nistp256 AAAAE2...A82zdls0=
到:
192.168.0.20 ecdsa-sha2-nistp256 AAAAE2...kFr3pqkY=
192.168.0.10 ecdsa-sha2-nistp256 AAAAE2...A82zdls0=
(注意IP地址已交换)
然后会给你:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
当客户端提供的密钥与服务器上的密钥配对但 IP 地址不同时,您会收到此警告。然后假设您是中间人攻击的对象并发出警告。
答案2
一种方法是更改远程服务器上的密钥,这样当它们根据文件中的条目进行验证时,known_hosts
它就不会匹配并给您该消息。
使用以下命令在远程服务器上重新生成主机密钥:
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521
然后重新启动 SSH 服务器。
您还可以编辑known_hosts
客户端上的文件以包含另一台服务器的条目,但包含您想要获取消息的远程服务器的主机名。
答案3
也许最简单的方法就是复制另一个主机的密钥。
例如,如果您有一个known_hosts
类似以下内容的文件
192.168.1.1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCrkL8HEVk8VP3r...
192.168.1.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeL...
并且您想192.168.1.2
显示错误,只需复制192.168.1.1
的主机密钥,所以known_hosts
现在看起来像
192.168.1.1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCrkL8HEVk8VP3r...
192.168.1.2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCrkL8HEVk8VP3r...
答案4
您可以做的是重新生成服务器密钥(如果需要恢复到它们,请在备份之前的密钥后):
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
编辑:@jjlin 答案绝对不那么打扰