如何允许来自某些主机的登录/密码并强制其他主机进行基于密钥的身份验证?

如何允许来自某些主机的登录/密码并强制其他主机进行基于密钥的身份验证?

阅读时如何限制指定的 SSH 用户只能从一个 IP 或主机名连接?我几乎解决了特定登录时遇到的问题 - 但它并没有解决我的情况。

我需要确保192.168.10.0/24通过密钥验证来自其他任何来源的到我主机的 ssh 连接。来自的连接192.168.10.0/24可以使用这两种方式(如果存在问题,则仅使用基于密码的方式)。

ssh_config手册页在 PATTERNS 部分提到

authorized_keys可以使用以下条目(在):

from="!*.dialup.example.com,*.example.com"

这将允许一个与我的完全相反的解决方案:一些来源不是允许使用钥匙,但我不知道如何将其转化为我的需要。

当客户端无法从某些 IP 连接时,如何强制使用 ssh 密钥?

答案1

根据手册页,您可以将您的主机划分/etc/sshd_config为与主机匹配的部分,使用第一个匹配的部分:

因此你可以:

# everything for your local hosts
Host 192.168.*.*
[...]
RSAAuthentication yes
PasswordAuthentication yes
[...]

# Everything for other hosts
Host * 
[...]
RSAAuthentication yes
PasswordAuthentication no
[...]

为了避免所有重复,似乎有办法让块对特定主机有效:

Host * 
[...]
RSAAuthentication yes
[...]
Match 192.168.*.*
    PasswordAuthentication yes
Match all 

相关内容