web-dev-qa-db-ja.com

sftpjailユーザー。 winscpのエラー

特定のユーザーがsshではなくsftpでのみログインできる構成があります。
また、ユーザーは特定のディレクトリに投獄されます。

ユーザー名が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

奇妙なことに、エラーメッセージに対して[OK]をクリックすると、すべてのディレクトリがその場所にある状態で正しくログインします。ここで何が欠けていますか?

2

Chrootは/をそのディレクトリに設定します。ユーザーのホームディレクトリは明らかに/var/www/websites/site1に設定されているため、WinSCPがログインすると、実際のシステムでは/vhosts/wild.domain.com/var/www/websites/であるユーザーのホームディレクトリで起動しようとします。 site1

このstefanosユーザーがsftp経由でのみシステムにアクセスすると仮定すると、ホームディレクトリを/に設定しても安全です。それ以外の場合は、WinSCPの[ディレクトリ]タブでデフォルトのリモートディレクトリを設定すると、メッセージが消えるはずです。

2
DerfK