
我正在嘗試設定具有 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
答案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
文件