允許使用 chroot 目錄進行 SFTP 和 SSH

允許使用 chroot 目錄進行 SFTP 和 SSH

我正在嘗試設定具有 SFTP 存取權限和有限 SSH 存取權限的使用者。因此,我已經對用戶進行了 chroot,然後基本上完全按照中指定的方式進行設置本教程。但是,雖然我可以成功 ssh 到伺服器,但當我嘗試透過 SFTP 連線進行連線時,它只是顯示「連線失敗」。

研究和嘗試修復

我試圖尋找任何可以解釋如何做到這一點的東西,但我只能找到這個話題沒有任何答案。此外,我在網路上找不到任何文章來說明如何做到這一點。

我還嘗試將整個資料夾複製/bin/libchrooted 目錄中,以確保沒有任何遺失的命令可能導致其失敗。查看/var/log/auth.log沒有產生任何結果,包括因為唯一的日誌是連線被使用者關閉,包括當我設定LogLevel Debug2/etc/ssh/sshd_config。嘗試使用 WinSCP 中的 SCP 連線進行連線允許我查看文件,但是我無法將任何內容複製到本機磁碟機,反之亦然

SSHD 設定檔(相關部分):

Match User test_user
    ChrootDirectory /home/test_user

答案1

最終我找到了一個jailkit旨在自動監禁用戶的工具,而不是我最初嘗試手動執行的操作。

要設定 chrooted 目錄,我使用了以下步驟

安裝(在 Ubuntu 上) 可以找到從原始碼安裝這裡

sudo apt install jailkit

目錄設定

可以在 找到允許存取的各種軟體包的清單/etc/jailkit/jk_init.ini。我設定好之後也是這樣安裝的

sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp

一般格式如下

sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>

監禁用戶

sudo jk_jailuser -m -j /srv/test_user test_user

換殼

最後指定的 shell<chroot_directory>/etc/passwd應從 更改/usr/sbin/jk_lsh/bin/bash。請注意,應該只有 test_user、root 和可能的其他登入名稱的條目

從那裡,您可以透過 ssh 或 sftp/scp 登入並按預期存取所有內容。請注意,要透過公鑰登錄,您需要設定~/.ssh/authorized_keys文件

相關內容