如何允许在特定 IP 范围内通过 SSH 直接 root 访问?

mrj*_*per 6 freebsd ssh

  1. 我想在家里 (192.168.1.0/24) 时直接通过 ssh 登录到 root。

  2. 但是在外面(例如在工作中),我仍然可以使用我创建的自定义帐户之一通过 ssh 登录。

我只是试过:

Match Address 192.168.1.0/24
        PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)

现在我完全被锁在盒子外面了。我在工作和在家时也无法登录(我进入了我的另一个 FreeBSD 盒子)。

关于如何做到这一点的任何想法?谢谢

use*_*445 10

查看sshd 手册页的AUTHORIZED_KEYS FILE FORMAT部分。然后将类似以下内容添加到~root/.ssh/authorized_keys(该ssh-ed25519 ...部分由您的 ssh 公钥替换):

from="192.168.1.0/24" ssh-ed25519 AA...
Run Code Online (Sandbox Code Playgroud)

那么该密钥将只允许来自您的特定网络。

另外,请确保您在 sshd_config 中有以下内容:

PermitRootLogin prohibit-password
Run Code Online (Sandbox Code Playgroud)


小智 4

您所做的配置更改意味着“允许来自 192.168.1.0/24 的 root,拒绝其他一切”。换句话说,只有符合条件的才允许访问。

你可以试试这个:

AllowUsers root@192.168.1.? anotheruser1 anotheruser2
Run Code Online (Sandbox Code Playgroud)

这意味着 root 来自 192.168.1.0/24,另外两个用户来自任何地方。