Chrooted 用户登录后立即注销

Chrooted 用户登录后立即注销

我正在尝试使用 chroot 设置一个可以通过 ssh 登录并限制对目录的访问的用户/var/www。该服务器位于运行 Amazon Linux 64 位的 AWS 上,安装了 openssh。我使用 ssh-keygen 生成密钥。

在我编辑sshd_config文件之前,我能够使用用户名和私钥登录,用户从/home/my-username目录中启动,因此密钥是有效的。

我修改了sshd_config文件如下:

Subsystem sftp internal-sftp

Match User my-username
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no

然后我重新启动了 sshd。

由 root:root所有ChrootDirectory /var/www,并且没有任何组对树中的该点具有写权限 - 默认 Apache 安装。

当我使用我的用户名和密钥登录时,会话立即断开。我检查/var/log/secure并找到此条目:

Nov  3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: Accepted publickey for my-username from xxx.xxx.xxx.xxx port 61821 ssh2
Nov  3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: pam_unix(sshd:session): session opened for user my-username by (uid=0)
Nov  3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: pam_unix(sshd:session): session closed for user my-username

我在许多论坛上阅读了大量帖子,看到了不同的解决方案——其中一些我试过但没有成功。我想让它尽可能简单。目标是为只需要使用 WinSCP 将文件上传到 Web 服务器的开发人员创建一个用户帐户,默认情况下是/var/www/html

我找到了这个帖子 –用户在 chrooted SSH 上连接成功后立即断开连接- 但不确定它是否与我的问题直接相关。

我想这可能与我的 PAM 配置有关。同样,这几乎是默认安装。

提前感谢您提供的任何指导。

答案1

Chroot 环境要求存在正常运行所需的所有库和二进制文件。这包括登录 shell 链接到的所有共享对象文件。如果您将其他命令二进制文件复制到此 chroot,您还需要它们的链接器依赖项。

相关内容