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

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

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

答案1

鉴于以 root 身份登录不是一个好主意,请查看 sshd 手册页:

允许Root登录

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

如果将此选项设置为“无密码”,则对 root 禁用密码验证。

如果将此选项设置为“forced-commands-only”,则将允许使用公钥身份验证的 root 登录,但前提是已指定命令选项(即使通常不允许 root 登录,这对于进行远程备份也很有用)。所有其他身份验证方法对 root 都禁用。

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

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

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

command="rdiff-backup --server" ssh-rsa AAAAB3NzaC1y... (rest of key)

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

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

相关内容