Sftp
sftp 監獄使用者。wincp 中的錯誤
我有一個配置,其中特定使用者只能在 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 的“目錄”選項卡中設置預設遠端目錄,我認為該消息可能會消失。