如何限制SSH root登录,但允许一些例外

Vla*_*ndo 1 linux ssh centos openssh

在 openssh 中,您可以限制 root 登录(PermitRootLogin 否),但它可以有例外吗?

gui*_*ido 6

鉴于以 root 身份登录不是一个好主意,请查看 sshd 联机帮助页:

允许Root登录

指定 root 是否可以使用 ssh(1) 登录。参数必须是“yes”、“without-password”、“forced-commands-only”或“no”。默认值为“是”。

如果此选项设置为“without-password”,则 root 用户的密码验证将被禁用。

如果此选项设置为 ``forced-commands-only'' 将允许使用公钥身份验证的 root 登录,但前提是已指定命令选项(即使 root 登录通常不是允许)。对 root 禁用所有其他身份验证方法。

如果此选项设置为“no”,则不允许 root 登录。

因此,您可以PermitRootLogin without-password用于允许私钥/公钥身份验证而不允许密码身份验证;或者PermitRootLogin forced-commands-only让您以 root 身份登录但没有交互式访问权限。

后一种情况需要您编辑authorized_keys文件,以指定为用户启用日志记录的命令,如下所示:

command="rdiff-backup --server" ssh-rsa AAAAB3NzaC1y... (rest of key)
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,仅允许从特定 IP 地址进行仅强制命令的 root 登录:

from="10.1.1.1",command="/home/user/command/to/execute" ssh-rsa AAAAB3NzaC1y... (rest of key)
Run Code Online (Sandbox Code Playgroud)