Chroot

scponly 工作但沒有 chroot 主文件夾,使用者仍然可以瀏覽整個伺服器

  • May 28, 2010

所以我遵循了http://sublimation.org/scponly/wiki/index.php/FAQ中的“Chroot 和 Debian”教程

然後,當我通過 ssh 登錄使用者“上傳”時,我無法訪問命令行(這就是我想要的)。

但是當我 SFTP 進入上傳使用者時,我仍然可以看到所有的根文件 (/),它並沒有 chroot 我只是 /home/upload 發生了什麼?

….

我將此添加到我的 /etc/ssh/sshd_config 文件的末尾,然後重新啟動

Subsystem sftp internal-sftp

UsePAM yes

Match User upload
   ChrootDirectory /home/upload
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

然後當我登錄 sftp 時,我只能看到我的上傳文件夾(這是我想要的),但現在 scp 不起作用:P

然後SCP會接受我的密碼:

debug1: Next authentication method: password
upload@10.10.10.2's password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_NZ.UTF-8
debug1: Sending command: scp -v -t /test

它將掛在最後一條調試消息上。

任何幫助將不勝感激。

注意,執行 Debian Lenny

沒有在這裡使用scponly。您已將使用者限制upload為使用 SFTP,因此您不能scp在該帳戶上使用,因為scp依賴於互動式 shell 或至少一個支持某些命令(如scponlyor rssh)的 shell。

使用sftp或其他 SFTP 客戶端(例如lftp)訪問該帳戶或從您的 sshd_config 中刪除ForceCommandandChrootDirectory指令。

scponly 原生支持 chroot。有編譯時選項可以啟用它,尤其是--enable-chrooted-binary. scponly 將需要 SUID 位來啟用 chroot。

如果已經編譯,您的文件系統上將擁有scponlyc可用的二進製文件。

chroot 作為安全解決方案的有用性也存在限制。

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