如何限制 ssh 用户只浏览 /home/%u 内容

Mah*_*war 9 chroot ssh

我可以只使用 OpenSSH 配置将我的用户限制在他们的 /home/%u 目录中吗?根据我在 Internet 上找到的说明,我停止了 SSH 服务器并将以下内容附加到sshd_config文件中:

Match group sftpusers
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

然后我再次启动了 SSH 服务器。

仅供参考,我已将用户添加到sftpusers组中

我的用户仍然可以浏览 iecd /并且能够使用 cat 命令cat /usr/bin/test.sh在我的系统上的整个文件结构中列出文件内容 ( )

我正在运行 Ubuntu Server 12.04 LTS。

zhe*_*ech 8

首先,我建议使用ChrootDirectory %h而不是/home/%u, 作为%h扩展到用户的家,即使它不是/home/$USER

现在到您的实际问题:您需要强制internal-sftp作为要运行的命令。以下配置对我来说很好用,也应该适合你:

Match group sftp
    ForceCommand internal-sftp
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

如上所述,用户的家应该是root-owners 并拥有 755权限:

drwxr-xr-x 22 root root 4.0K Nov 24  2011 /home/testuser
Run Code Online (Sandbox Code Playgroud)