如何在 Linux 上安装和设置 rssh 和 scponly
介绍
在管理 Linux 服务器时,为用户提供受限的文件传输访问权限而不授予完整 shell 访问权限,是一个常见的安全问题。帮助实现这一点的两个工具是 rssh 和 scponly。这些受限 shell 允许用户通过 SCP、SFTP 和 rsync 执行特定的文件传输操作,同时防止命令执行。
在本指南中,我们将介绍在 Linux 系统上安装和设置 rssh 和 scponly。
安装 rssh
安装 rssh
大多数 Linux 发行版都在其软件包仓库中提供 rssh。您可以使用以下命令进行安装:
对于 Debian/Ubuntu:
sudo apt update && sudo apt install rssh -y
对于 CentOS/RHEL:
sudo yum install rssh -y
对于 Arch Linux:
sudo pacman -S rssh
配置 rssh
安装完成后,通过编辑其配置文件来配置 rssh:
sudo nano /etc/rssh.conf
取消注释所需选项以允许 SCP、SFTP 或 rsync。示例:
allowscp allowsftp allowrsync
保存并退出文件。
为用户设置 rssh
要将 rssh 设为特定用户的 shell,请运行:
sudo usermod -s /usr/bin/rssh username
现在,用户只能通过 SCP、SFTP 或 rsync 执行允许的操作。
安装 scponly
安装 scponly
对于基于 Debian 的系统:
sudo apt update && sudo apt install scponly -y
对于 CentOS/RHEL:
sudo yum install scponly -y
对于 Arch Linux:
sudo pacman -S scponly
为用户设置 scponly
要将用户限制为使用 scponly,请修改其 shell:
sudo usermod -s /usr/bin/scponly username
要确保用户被正确限制,请使用以下命令进行测试:
ssh username@server
这应该会拒绝 shell 访问,但允许 SCP/SFTP 文件传输。
测试和验证
要验证设置,请尝试使用以下方式进行文件传输:
对于 SCP:
scp file.txt username@server:/home/username/
对于 SFTP:
sftp username@server
如果设置正确,用户应该能够传输文件,但不能执行命令。
结论
使用 rssh 和 scponly,管理员可以通过将用户访问限制为仅文件传输来增强安全性。这可以防止未经授权的 shell 访问,同时允许必要的文件交换操作。请确保定期更新配置,以符合安全策略。


