Sftp

sftp 監獄使用者。wincp 中的錯誤

  • June 23, 2011

我有一個配置,其中特定使用者只能在 sftp 而不是 ssh 中登錄。

使用者也被監禁在特定目錄中。

假設使用者名是stefanos並且他的根目錄是**/vhosts/wild.domain.com/**

該目錄安裝有mount -o bind /var/www/websites/site1/ /vhosts/wild.domain.com/

sshd_config 是:

Match user stefanos
  ChrootDirectory /vhosts/wild.domain.com/
  ForceCommand internal-sftp

日誌是:

Jun 23 15:42:52 hostname sshd[32447]: Accepted password for stefanos from 11.22.33.44 port 64759 ssh2
Jun 23 15:42:52 hostname sshd[32447]: pam_unix(sshd:session): session opened for user stefanos by (uid=0)
Jun 23 15:42:52 hostname sshd[32572]: subsystem request for sftp
Jun 23 15:43:07 hostname sshd[32447]: pam_unix(sshd:session): session closed for user stefanos

問題是(由 WinSCP 拋出):

Cannot get real path for '/var/www/websites/site1'.
No such file or directory.
Error code: 2
Error message from server: No such file
Request code: 16

奇怪的是,當我點擊錯誤消息的“確定”時,它會正確登錄,所有目錄都在他們的位置。我在這裡錯過了什麼??

Chroot 設置/為該目錄。使用者主目錄顯然設置為,/var/www/websites/site1因此當 WinSCP 登錄時,它會嘗試在使用者的主目錄中啟動,在實際系統上該目錄為 /vhosts/wild.domain.com/var/www/websites/site1

假設這個 stefanos 使用者只通過 sftp 訪問系統,那麼將主目錄設置為/. 否則,如果您在 WinSCP 的“目錄”選項卡中設置預設遠端目錄,我認為該消息可能會消失。

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