在运行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 脚本来完成,但如果您不完全了解要执行的操作的范围,则更容易出错。