我刚刚将 Linux Mint 安装为虚拟机。我安装了 OpenSSH,然后移至主机 (macOS),并在终端中打开 Bash 会话以通过 SSH 连接到 Linux Mint VM。当我这样做时,我收到了消息
The authenticity of host '<<IP address>>' port <<port#>>: can't be established.
ECDSA key fingerprint is SHA256:<<blahblahblahblahblahblah>>.
Are you sure you want to continue connecting (yes/no)?
我在这里的设置中是否做错了什么?如果是,该如何纠正?
答案1
不用担心。
这是第一次连接新主机时看到的标准提示。
我在这里的设置中是否做错了什么?如果是,该如何纠正?
没问题。当你第一次连接到新主机时 — — 不仅仅是在 Linux 机器上,即使你要连接到另一台 macOS 主机 — — 它会问你这个问题:
Are you sure you want to continue connecting (yes/no)?
只需回答yes
,该主机的哈希/指纹值就会添加到~/.ssh/known_hosts
您的主目录中。自己检查一下;只需在回答之前~/.ssh/known_hosts
使用 Nano ( nano ~/.ssh/known_hosts
) 或任何其他文本编辑器打开yes
,然后再次运行该 SSH 命令,回答yes
并再次检查。新主机的哈希/指纹值将位于该文件的底部。
这些哈希的好处是,如果有人试图对主机进行中间人攻击,主机的哈希/指纹值将会改变,SSH 会抛出一个更令人恐慌的警告,告诉你:
“喂,那个宿主看起来不像是……小心啊!”
您看到的对话框文本只是第一个连接查询,其基本内容是:
“嘿,您之前从未连接过此主机。让我确认您确实想要连接,并从
/.ssh/known_hosts
此刻起让我保存该主机的哈希/指纹。”
更多信息可参阅本文“OpenSSH/客户端配置文件”:
此文件位于用户帐户本地,包含远程主机的已知密钥。这些密钥通常是在首次连接时从主机收集的,但也可以手动添加。与存储在全局文件中的密钥一样,/etc/ssh/ssh_known_hosts,这些密钥用于验证远程主机的身份,从而防止冒充或中间人攻击。每次后续连接时,都会将该密钥与远程服务器提供的密钥进行比较。如果匹配,则连接将继续。如果匹配失败,远程控制将失败并显示错误消息。如果该远程主机根本没有列出密钥,则将显示密钥的指纹,并且将有选项自动将密钥添加到文件中。此文件可以手动创建和编辑,但如果不存在,它将由远程控制当它第一次连接到远程主机时。
答案2
使用ssh-keygen -lf
以下方式验证密钥指纹按照教程。
如果指纹验证后不匹配,您应该放弃连接,转储旧密钥并尽快生成新密钥。