如何在不授予 shell 访问权限的情况下为站点设置 SFTP?

如何在不授予 shell 访问权限的情况下为站点设置 SFTP?

我想对我的 cPanel CentOS 服务器上的所有站点使用 SFTP,因为我们之前曾有一个 FTP 密码被黑客入侵(这并不难)。但是我不希望每个站点的 SFTP 帐户都具有 shell 访问权限(甚至不是被监禁的 shell)。这可能吗?如何实现?我对 UNIX、服务器管理和命令行还很陌生。

答案1

我不确定哪个版本的 OpenSSH 与 CentOS 捆绑在一起,但如果它是 4.9 或更新版本,那么您实际上可以使用 OpenSSH 来执行此操作,而无需安装任何其他软件。

我最近写了一篇有关此问题的博客文章,您可以在这里查看: http://blog.frands.net/sftp-only-chroot-users-with-openssh-in-debian-166/

本指南适用于 Debian,但如果 OpenSSH 版本为 4.9 或更高版本,则操作基本相同。您可以通过发出以下命令来查看版本:

ssh -V

另外,在我的示例中,我为所有用户使用静态目录。您可以在配置文件中使用 %u,它将被用户名替换。因此,ChrootDirectory 可以设置为 /www/users/%u

答案2

scponly作为这些用户的登录 shell。

答案3

RSSH——受限 SSH 将执行您所追求的操作。

RSSH 是一个 shell 包装器,它只允许用户访问您允许的 SSH 部分,一开始使用 chroot 环境等进行设置有点棘手。

http://www.pizzashack.org/rssh/

答案4

您可能需要考虑安全外壳提供:

带宽控制。安全权限信息。使用图形界面管理服务器。使用日志管理服务器活动。通过 IP、群组限制用户。

我以前用过这个;它的安装和配置都很简单,而且积极开发。对于你来说,CentOS 软件包和一个图形用户界面帮助配置和管理。

相关内容