如何在 Linux 上安装和设置 rssh 和 scponly

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

介绍

在管理 Linux 服务器时,为用户提供受限的文件传输访问权限而不授予完整 shell 访问权限,是一个常见的安全问题。帮助实现这一点的两个工具是 rsshscponly。这些受限 shell 允许用户通过 SCP、SFTP 和 rsync 执行特定的文件传输操作,同时防止命令执行。

在本指南中,我们将介绍在 Linux 系统上安装和设置 rsshscponly

安装 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

如果设置正确,用户应该能够传输文件,但不能执行命令。

结论

使用 rsshscponly,管理员可以通过将用户访问限制为仅文件传输来增强安全性。这可以防止未经授权的 shell 访问,同时允许必要的文件交换操作。请确保定期更新配置,以符合安全策略。