我可以以系统管理员身份通过 SSH 运行命令。我还设置了一些用户执行“监禁”SFTP。
我如何更改以下 sshd_config 文件以允许 TestUser2 执行受限 SFTP(仅限于其目录)并从远程终端运行命令。例如,在 WinSCP 中,您可以按 CNTL-P 来获取命令行窗口。
Subsystem sftp /usr/lib/openssh/sftp-server
#SFTP ONLY
Match User TestUser1
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
PasswordAuthentication no
PubkeyAuthentication yes
ForceCommand internal-sftp
#SFTP Plus Command Line
Match User TestUser2
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
PermitTTY yes
PasswordAuthentication no
PubkeyAuthentication yes
ForceCommand internal-sftp
我正在运行 Ubuntu 20.04,但我认为这个问题很普通。
更新:我非常确定“ForceCommand internal-sftp”允许用户仅执行 SFTP,而不执行任何其他 shell 命令。但我知道我的 root 用户可以同时执行 SFTP 和 shell 命令,因此想知道如何对上面的 user=TestUser2 执行此操作。
答案1
您要执行的操作是“删除 root”。我不知道 SSH 是否允许此操作,因为 SSH 对所有用户都是全局的。但是,您可以尝试 ACL 来禁止此用户的所有其他目录。