sftp 监狱用户。winscp 中的错误

sftp 监狱用户。winscp 中的错误

我有一个配置,其中特定用户只能在 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

奇怪的是,当我单击错误消息的“确定”时,它会正确登录,所有目录都在其位置。我在这里遗漏了什么?

答案1

Chroot 设置/为该目录。用户主目录显然设置为,/var/www/websites/site1因此当 WinSCP 登录时,它会尝试从用户的主目录启动,在实际系统上,该目录将是 /vhosts/wild.domain.com/var/www/websites/site1

假设这个 stefanos 用户只通过 sftp 访问系统,将主目录设置为 是安全的/。否则,我认为如果您在 WinSCP 的“目录”选项卡中设置默认远程目录,该消息可能会消失。

相关内容