Ssh

無法 Chroot 進入目錄,但可以 cd 進入該目錄

  • December 8, 2019

當連接到 SFTP 伺服器時,我沒有問題進入 /home 目錄並訪問我想要的目錄(FileFolder)。但是,當我嘗試對其進行配置以使其 Chroot 直接進入目錄時,它會拒絕連接。

當我以訪客使用者身份連接時,將以下行更改ChrootDirectory /homeChrootDirectory /home/FileFolder我的連接被拒絕。來賓使用者的權限是rx因為我希望使用者只能下載文件。

我確實嘗試將日誌記錄添加到我的配置中,以了解正在發生的事情:

SyslogFacility AUTH
LogLevel INFO

但是該文件/var/log/auth.log不存在(我可能弄錯了,它記錄到另一個文件)。我也嘗試過使用journalctl _COMM=sshd,但它沒有給我詳細的資訊,只有正在連接的使用者和他們的 IP。

我的 sshd_config:

Port 22

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM yes

Subsystem   sftp    /usr/lib/ssh/sftp-server

Match Address 192.168.8.*
   PasswordAuthentication yes

Match User guest
   ForceCommand internal-sftp
   ChrootDirectory /home

我已經嘗試過這裡的解決方案,但它不起作用。

PS 我從 192.168.8.* IP 地址連接,所以它不是 pubkey 身份驗證錯誤。

解決方案:我不得不將 FileFolder 的所有者更改為 root。最初它只是一個具有 root 權限的使用者。

我懷疑權限問題。為什麼 chroot to /home 起作用是它歸root所有。Chroot 到**/home/FileFolder**不起作用,因為它不屬於 root 並且應該只能由 root 寫入。chroot路徑中的所有元素都應該具有相同的權限。檢查“/var/log/secure”以獲取日誌資訊。它將列出 chroot 失敗的原因。

引用自:https://serverfault.com/questions/994783