我想对我的 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 环境等进行设置有点棘手。
答案4
您可能需要考虑安全外壳提供:
带宽控制。安全权限信息。使用图形界面管理服务器。使用日志管理服务器活动。通过 IP、群组限制用户。
我以前用过这个;它的安装和配置都很简单,而且积极开发。对于你来说,CentOS 软件包和一个图形用户界面帮助配置和管理。