我正在尝试设置具有 SFTP 访问权限和有限 SSH 访问权限的用户。因此,我已经对用户进行了 chroot,然后基本上完全按照本教程中的说明进行了设置。但是,虽然我可以成功通过 ssh 连接到服务器,但当我尝试通过 SFTP 连接进行连接时,它只是显示连接失败。
研究和尝试修复
我试图搜索任何可以解释如何做到这一点的东西,但是我只能找到这个没有任何答案的主题。此外,我在网上找不到任何文章来说明如何做到这一点。
我还尝试将/bin
整个/lib
文件夹复制到 chrooted 目录中,以确保没有任何丢失的命令可能导致它失败。查看/var/log/auth.log
没有产生任何结果,包括因为唯一的日志是用户关闭了连接,包括我LogLevel Debug2
在/etc/ssh/sshd_config
. 尝试使用 WinSCP 中的 SCP 连接进行连接允许我查看文件,但是我无法将任何内容复制到本地驱动器,反之亦然
SSHD 配置文件(相关部分):
Match User test_user
ChrootDirectory /home/test_user
最终,我发现了这个
jailkit
工具,它旨在自动化用户的监禁,而不是我最初试图做的手动操作。要设置 chrooted 目录,我使用了以下步骤
安装(在 Ubuntu 上) 从源代码安装可以在这里找到
目录设置
可以在 中找到允许访问的各种包的列表
/etc/jailkit/jk_init.ini
。设置好之后,我也以这种方式安装了 git通用格式如下
监禁用户
换壳
最后, 中指定的外壳
<chroot_directory>/etc/passwd
应从 更改/usr/sbin/jk_lsh
为/bin/bash
。请注意,应该只有 test_user、root 和可能另一个登录名的条目从那里,您可以通过 ssh 或 sftp/scp 登录并按预期访问所有内容。请注意,要通过公钥登录,您需要设置
~/.ssh/authorized_keys
文件