如何设置不影响整台机器的SFTP服务器

如何设置不影响整台机器的SFTP服务器

我在 RHEL 8 服务器上设置了 chroot 的 SFTP 目录,该服务器上还运行着多个网站。当我今天早上尝试 ssh 时,服务器说它只接受 SFTP 连接。幸运的是,它是一个虚拟机,所以我可以直接连接到控制台。

sshd_config这是我周五添加的内容:

ForceCommand internal-sftp
Match Group sftpusers
ChrootDirectory /sftp/%u

注释掉该ForceCommand行可以让我通过 ssh 重新进入。将 SFTP 用户限制到某个目录而不将整个服务器转变为 SFTP 服务器的正确指令是什么?

答案1

查看man sshd_config,文档中写道:

ForceCommand- 强制执行指定的命令ForceCommand,忽略客户端提供的任何命令

通过指定,ForceCommand internal-sftp您可以知道sshd每个 ssh 连接都必须执行,internal-sftp无论客户端请求或期望什么。

您几乎肯定想使用Subsystem,其记录如下:

Subsystem- 配置外部子系统(例如文件传输守护进程)。

要纠正您的情况,请删除 的条目ForceCommand并将其替换为Subsystem。我还倾向于在MatchorHost行之后缩进命令,以便在视觉上更清楚地表明它们仅在MatchorHost适用时才适用。

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /sftp/%u

相关内容