如何:限制用户使用 SCP 和 SFTP 并使用 rssh 阻止 SSH Shell 访问
FTP 是一种不安全的协议,但始终需要文件传输。您可以使用 OpenSSH Server 通过 SCP 和 SFTP(安全 FTP)传输文件,而无需设置 FTP 服务器。但是,此功能还授予用户 ssh shell 访问权限。基本上,OpenSSH 需要有效的 shell。sftp 的工作原理如下:
SCP/SFTP -> SSHD -> 调用 sftpd 子系统 -> 需要 shell -> 用户可以登录服务器并运行其他命令。
在本系列文章中,我们将帮助您为用户提供安全的受限文件传输服务,而无需借助 FTP。它还涵盖了 chroot jail 设置说明,用于将用户锁定到他们自己的主目录(允许用户传输文件但不允许浏览服务器的整个 Linux / UNIX 文件系统)以及每个用户的配置。
rssh ~ 受限制的 shell
rssh 是用于 OpenSSH 的受限 shell,仅允许 scp 和/或 sftp。它现在还支持 rdist、rsync 和 cvs。例如,如果您有一台服务器,您只希望允许用户通过 scp 复制文件,而不提供 shell 访问权限,则可以使用 rssh 来执行此操作。
使用 rssh 支持的操作
受限 shell 仅允许进行以下操作:
- scp – 安全文件复制
- sftp – 安全 FTP
- cvs – 并发版本系统〜您可以轻松检索旧版本,以准确查看导致错误的更改
- rsync – 备份和同步文件系统
- rdist – 备份/RDist 程序在多个主机上维护文件的相同副本。
安装 rssh
CentOS / Fedora / RHEL Linux rssh 安装
访问 Dag 的 repo 获取rssh 包
# cd /tmp
# wget http://dag.wieers.com/rpm/packages/rssh/rssh-2.3.2-1.2.el5.rf.i386.rpm
# rpm -ivh rssh-2.3.2-1.2.el5.rf.i386.rpm
Debian / Ubuntu Linux rssh 安装
使用 apt-get 命令:
$ sudo apt-get install rssh
FreeBSD 安装
# cd /usr/ports/shells/rssh
# make install clean
确保您构建的二进制文件具有 rsync 支持。
rssh 配置文件
- 默认配置文件位于/etc/rssh.conf(FreeBSD – /usr/local/etc/rssh.conf)
- 默认 rssh 二进制位置/usr/bin/rssh(FreeBSD – /usr/local/bin/rssh)
- 默认端口无 – (使用 openssh 22 端口 – rssh 是具有安全功能的 shell)