禁止在域名上使用 ssh

Pet*_*ter -2 ssh

有某些域指向我的服务器。

# example.com
example.com goes to 20.20.20.20
Run Code Online (Sandbox Code Playgroud)

我想拒绝使用此域名的 ssh 访问。我希望我的服务器只接受 .ssh 连接20.20.20.20。我该如何配置?

我试过的

# /etc/ssh/sshd_config
UseDNS no
Run Code Online (Sandbox Code Playgroud)

例子:

如果 user1 连接到 20.20.20.20 那么它应该显示登录信息,否则它应该只是丢弃所有连接。

我在 Debian 发行版上。

sou*_*edi 8

你不能。你问的在 SSH 中是不可能的。

这在 HTTP 中是可能的,因为 HTTP/1.1 发送一个Host标头来告诉服务器要连接到哪个(虚拟)主机。SSH 不发送此类字段。您可以使用 Wireshark 网络协议解析器来查看这一点。

如果可以这样做,显然它不会提供任何额外的安全性。

请简述为什么您要完成既定任务(我认为StackExchange建议这一点)。我不会说如果没有建设性的解释,你往往会得到令人讨厌的堆积。(嗯。有鉴于此:如果您正在查看一般的 SSH 强化,一个常见且可靠的解决方案是拒绝密码登录,而是使用存储在您计算机上的 SSH 密钥)。