У меня есть конфигурация, в которой определенные пользователи могут входить в систему только через sftp, а не через ssh.
Также пользователи сажаются в определенные каталоги.
Допустим, имя пользователя Стефанос и его корневой каталог /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 «Каталоги».