在 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)