Ssh
無法 Chroot 進入目錄,但可以 cd 進入該目錄
當連接到 SFTP 伺服器時,我沒有問題進入 /home 目錄並訪問我想要的目錄(FileFolder)。但是,當我嘗試對其進行配置以使其 Chroot 直接進入目錄時,它會拒絕連接。
當我以訪客使用者身份連接時,將以下行更改
ChrootDirectory /home
為ChrootDirectory /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 失敗的原因。