在设置 SSH 时禁止将您的 IP 地址输入到known_hosts 文件中

在设置 SSH 时禁止将您的 IP 地址输入到known_hosts 文件中

我们最近刚刚在两台服务器之间建立了无密码连接。我们存在与known_hosts 文件内容相关的安全问题。基本上我们担心的是,如果有人能够访问我们的系统,并且他们能够查看known_hosts 文件,他们将获得链接到此框的其余服务器的IP 地址信息。

我正在寻找一种方法来禁止将 IP 地址输入到known_hosts 文件中。

下面这篇文章中有一个解决方案,可以绕过检查外部服务器是否是已知主机:

https://www.shellhacks.com/disable-ssh-host-key-checking/?unapproved=26927&moderation-hash=b2ec1001579980d3f812843f3cdac07e#comment-26927

以下语句将绕过known_hosts 检查,并使您登录到外部服务器,而不会提示将该服务器信息输入到现有/ssh/known_hosts文件中。我引用了文章中的一段话:

“您可以通过将密钥发送到空的known_hosts 文件来跳过主机密钥检查:

$ ssh -o “UserKnownHostsFile=/dev/null” -o “StrictHostKeyChecking=no” user@host”

当您实现此操作时,除了抑制known_hosts检查过程的提示之外,您要连接的服务器的IP地址是否仍然存储在现有/ssh/known_hosts文件中,或者不存储在任何地方? (即“UserKnownHostsFile=/dev/null”)

是否有人熟悉这种类型的命令?我试图确认它是否可以防止存储 IP 地址。从我对 /dev/null/ 的了解来看,情况确实如此,但我只有 80% 的把握。有没有人可以证实这一点。您实际上不必了解 SSH 协议,任何 Linux 专家都可能知道这一点。

当您将 UserKnownHostsFile 重定向到 /dev/null 时(如上所示),实际上会阻止您的 IP 地址存储在 .ssh/known_hosts 文件中。谢谢!

答案1

配置ssh选项HashKnownHosts导致 ssh 以散列形式存储主机名和 IP 地址known_hosts,而不是原始名称。散列形式是一种单向转换,不允许恢复原始主机名或 IP 地址。这允许您按预期使用known_hosts机制,而无需在文件中存储原始主机名或地址。

散列的known_hosts条目如下所示:

|1|G9jVmIB3FBUJ70EpHtCM8PAJhMo=|AlMl5Apfpp3CR+Iy2gZTd+7y6bo= ssh-rsa AAAAB3Nz...

ssh-keygen程序可用于帮助管理这样的文件:

相关内容