<分区>
我的目标是让这些东西发挥作用:
- 用户可以通过 sftp 连接到服务器。他只能从他的主目录读取内容(因此,他可以使用 sftp user@host)
- 用户可以连接到服务器并打开远程端口进行端口转发(因此,他可以使用ssh -R remote_port:localhost:port user@host)
- 除了这两件事,用户不能做任何事情。他不应该有正常的 shell 访问权限,也不应该能够运行命令。
我可以让任何一种情况起作用,但不能同时使两种情况起作用。
我的/etc/sshd_config 是:
Match Group restricted
ChrootDirectory /home/restricted/users
AllowAgentForwarding no
X11Forwarding no
AllowTcpForwarding yes
ForceCommand internal-sftp
显然这是 sftp 的工作案例。使用此配置,无法打开远程端口进行端口转发。
目前我允许 tcp 转发的唯一方法是禁用 ForceCommand 和 ChrootDirectory 指令。
此外,我必须将 shell 更改为/bin/bash 以允许端口转发。
我的理想情况是:
- /bin/false(或等效)作为 shell
- chroot 到主目录
- sftp 工作
- 端口转发工程
- 没有别的工作
这可能吗?如果可以,我需要做什么?
提前致谢。