我正在配置一个应该有多个域和用户的网络服务器。
我试图限制用户只能访问他们的主目录并允许他们通过 SSH 或 SFTP 连接。
到目前为止,我遵循了一些指南并设法将用户限制到特定目录并使用 SFTP 连接,但是当我尝试使用 SSH 连接时,我得到:
无法 chdir 到主目录 /home/username:没有这样的文件或目录 /bin/bash:没有这样的文件或目录
我的 /etc/ssh/sshd_config 结尾如下所示:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
*我将用户“username”添加到“sftp”组。
*如果我评论“匹配组...”块并将“子系统 sftp 内部 sftp”更改回“子系统 sftp /usr/libexec/openssh/sftp-server”,我可以使用 SSH 连接,但没有文件夹限制。
- 任何想法?
子问题:我还将域从 /var/www/ 目录安装到用户主目录以使其可访问,这通常是在共享主机上完成的吗?
答案1
您需要设置正确的 chroot 环境每个用户你想通过 SSH 进入。
每个 chrooted 主目录都必须有它自己的能够启动 shell 等的最小 Unix 可执行文件和设备文件集。命令集将仅限于您复制到用户“自己的根目录”中的任何命令。这是 chroot 环境的主要棘手之处——用户会无休止地抱怨缺少特定命令。
有一堆关于如何设置 chrooted SSH 的手册,这个看起来很正常:Chrooted SSH/SFTP 教程 (Debian Lenny)。
干杯!