如何为特定用户或组禁用 sftp 子系统?

如何为特定用户或组禁用 sftp 子系统?

在运行OpenSSH

我怎么能够禁用 sftp 访问(sftp 子系统)针对特定用户/群组?

用户只能访问 shell 但没有 sftp 访问权限。

编辑:

目的是为用户提供一个 ssh 密钥,该密钥只​​能用于执行一个特定命令(使用 authorized_keys 中的 command="..." 选项)。并且不应允许他们使用 sftp。使用 command="..." 选项时是否已经解决了这个问题?

答案1

如果您正在使用 SFTP 子系统,它会生成一个单独的进程,那么您可以创建一个 sftp 组,并且只允许sftp-server该组执行二进制文件。使用 指定的较新的内部化 sftp 守护程序将无法执行此操作internal-sftp

如果他们有 shell 访问权限,他们仍然能够 scp。你心中有特定的目标吗?

编辑

如果您想限制用户仅执行或使用特定程序,我可能会推荐使用 shell 包装器。 command=可能会有效,但似乎更容易出错。我会做更多测试以确保万无一失。

外壳包装器,例如scponly,将仅允许最终用户 scp。例如,我之前曾修改过 scponly 的源代码,使其仅允许 CVS 执行。这也可以使用 shell 脚本来完成,但如果您不完全了解要执行的操作的范围,则更容易出错。

相关内容