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

fir*_*ion 10 shell sftp

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

Fra*_*sen 12

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

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

该指南适用于 Debian,但如果 OpenSSH 的版本为 4.9 或更高版本,则几乎相同。您可以通过发出以下命令来找出版本:

ssh -V
Run Code Online (Sandbox Code Playgroud)

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


gel*_*aen 6

scponly设置为这些用户的登录 shell。


Ham*_*sLi 5

RSSH - 受限 SSH 可以满足您的需求。

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

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