允许 root 通过 sftp 登录,但不允许通过 ssh 登录?

允许 root 通过 sftp 登录,但不允许通过 ssh 登录?

为了安全起见,我只允许虚拟用户通过 SSH 登录我的 CentOS 5.8 服务器,为此我添加了:

AllowUsers dummyaccount

当访问我的服务器时,我使用虚拟用户登录并su -获取 root 权限,这非常有效。

现在我已经使用以下命令设置了 sftp:

Subsystem sftp /usr/libexec/openssh/sftp-server

当我使用我的 ssh 客户端创建一个 ssh 隧道并使用 FileZilla 连接到它时,我可以使用我的虚拟帐户顺利登录并最终进入其根目录。

但是现在我想在 sftp 上使用我的虚拟帐户获得 root 权限,这样我就可以完全用它管理文件系统,或者我想允许 root 在 sftp 上登录但不允许在 ssh 上登录,换句话说我会用虚拟帐户登录 ssh 并使用su -获得 root 权限,如上所述,但是当我创建 ssh 隧道时,我就可以通过 sftp 使用我的 root 登录。

我听说过一种通过将用户的 shell 更改为 sftp 服务器来仅允许用户进行 sftp 访问的方法,但这显然不是 root 的选择,因为据我所知,更改其 shell 会破坏系统。使用该配置创建不同的用户是可行的,但他们通过 sftp 对文件系统的访问权限与虚拟用户一样有限。

你有什么建议?

答案1

需要基于密钥的身份验证。设置PermitRootLogin without-password选项。设置一个具有强制命令的密钥internal-sftp。或者sshd_config使用匹配部分更新您的以强制 sftp。

Match user root
    ForceCommand internal-sftp  # force SFTP

相关内容