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

在运行OpenSSH的Linux服务器上,

如何禁用 特定用户/组的 sftp访问 (sftp子系统)

用户应该只能访问一个shell,但不能访问sftp。

编辑:

目的是给用户一个ssh密钥,它只能用来执行一个特定的命令(在authorized_keys中使用command =“…”选项)。 而且他们不应该被允许使用sftp。 当使用command =“…”选项时,它已经被照顾了吗?

如果您使用SFTP子系统生成单独的进程,则可以创build一个sftp组,并只允许执行该组的sftp-server二进制文件。 用新的内部sftp守护进程(用internal-sftp指定)不能执行此操作。

如果他们有shell访问,他们仍然能够scp。 你有一个特定的目标吗?

编辑

如果你想限制你的用户只执行或使用特定的程序,我可能会推荐一个shell包装。 command=可能工作,但似乎更可能是易错的。 我会做更多的testing,以确保。

一个shell包装,比如scponly ,只允许最终用户使用scp。 例如,我已经修改了scponly的来源,只允许执行CVS。 这也可以用shell脚本来完成,但是如果你不完全理解你正在做的事情的范围,那么犯错就更容易。