我创建了三台虚拟机(Ubuntu Server 22.04 LTS),一台用于控制,另外两台用于节点。控制运行正常,我可以访问它,但是当我尝试访问节点 1 时,出现此错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 (omissis) key sent by the remote host is
(omissis)
Please contact your system administrator.
Add correct host key in /home/(omissis)/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/(omissis)/.ssh/known_hosts:11
remove with:
ssh-keygen -f "/home/(omissis)/.ssh/known_hosts" -R "[(vm IP, omissis)]:3022"
Host key for [(vm IP, omissis)]:3022 has changed and you have requested strict checking.
Host key verification failed.
我认为这是因为虚拟机共享 IP 地址,但文件known_hosts
中~/.ssh
已经保存了控制 IP 地址。我想同时访问它们两个(实际上我想要的任意多个)。我该怎么做?如何强制将另一个已知主机添加到列表中?
先感谢您
答案1
类似的问题这。
有两种可能的解决方案。
- 复制服务器指纹(由于安全问题不建议这样做)
如果匹配包含指纹的文件(/etc/ssh/ssh_host*
),则不会因指纹不匹配而给出错误。
known_hosts
在客户端创建多个文件
通过将主机配置添加到~/.ssh/config
,可以使用指向同一台机器的不同指纹。有关更多信息,请参阅man ssh_config
示例(来自链接):
Host windows.dualbootbox
Hostname 192.168.10.20
UserKnownHostsFile ~/.ssh/windows.dualbootbox.known_hosts
Host ubuntu.dualbootbox
Hostname 192.168.10.20
UserKnownHostsFile ~/.ssh/ubuntu.dualbootbox.known_hosts
答案2
所以我用 GUI 方式解决了这个问题。首先,在 VirtualBox 上转到file
并Host Network Manager
下一个,create
很快就到你虚拟节点settings
然后network
选择NAT
,然后。使用右上角的Port Forwarding Rules
小按钮创建一个新的端口转发规则。+
为了
Name: ssh
Protocol: TCP
Host Port: 3022
Guest Port: 22
按ok
并转到Adapter 2
。启用它并选择Host-only Adapter
启用Adapter 3
并选择Bridged Adapter
现在,您可以对集群的每个节点重复每个步骤(第一步除外)。如果这样做,就不会出现 IP 冲突。