如何设置仅用于远程访问的 SSH 无密码密钥认证,允许本地用户使用密码

如何设置仅用于远程访问的 SSH 无密码密钥认证,允许本地用户使用密码

我正在尝试让运行 Ubuntu 10.04 的 SSH 服务器仅允许来自本地网络的密码登录。对于所有其他用户,尤其是通过防火墙从互联网登录的用户,我想强制使用基于密钥的身份验证。我在 Google 上搜索了一下,找到了以下内容。

以下是我所做的更改/etc/ssh/sshd_config

PasswordAuthentication yes
Match Address 192.168.5.0/24
PasswordAuthentication yes

这样,我就可以从另一台具有 192.168.5 的地址的机器登录,但是由于缺少公钥,它不允许我进入:权限被拒绝(公钥)。

答案1

这应该可以解决问题:

PubkeyAuthentication yes
PasswordAuthentication no
Match Address 192.168.5.* PasswordAuthentication yes

前两行将默认启用公钥认证。最后一行将覆盖匹配网络 (192.168.5.0/24) 的其他两行。

答案2

匹配条件后的换行符很重要。这应该有效:

PasswordAuthentication no
Match Address 192.168.5.0/24
PasswordAuthentication yes

编辑:我很惊讶另一个答案有效!它对我不起作用。好吧,这样你应该能够使用 CIDR 网络掩码。

相关内容