使用某些用户访问 SFTP 目录

使用某些用户访问 SFTP 目录

我尝试在 Linux 中访问 sftp 目录,但出现此错误

packet_write_wait: Connection to xxx.xxx.xxx.xxx port 22: Broken pipe
Couldn't read packet: Connection reset by peer

在日记里我得到了

sshd[24404]: fatal: bad ownership or modes for chroot directory component "/"

我的目录是 /var/sftp/files:

drwxr-xr-x  3 root root  4096 Mai 24 13:48 sftp
drwxr-xr-x 2 UserFTP root 4096 Mai 24 13:48 files

我已将这些行添加到 /etc/ssh/sshd_config :

Match User UserFTP
        ForceCommand internal-sftp
        PasswordAuthentication yes
        ChrootDirectory /var/sftp/%u
        PermitTunnel no
        AllowAgentForwarding no
        AllowTcpForwarding no
        X11Forwarding no

然后我重新启动 ssh 服务。

注意:我也使用相同的用户访问 ftp。

有人可以帮助我并给我一个解决方案吗?

答案1

看看这个:https://serverfault.com/questions/418931/sftp-fatal-bad-ownership-or-modes-for-chroot-directory-ubuntu-12-04/418937?newreg=899788119d964533ab88df21a3c0fbd2

%u提供用户名。chroot 目录及其所有父目录不得具有组或全局写入能力(即chmod 755)。chroot 目录及其所有父目录必须由 root 拥有。子目录可能拥有 UserFTP。

对于用户UserFTP

% mkdir -p /var/sftp/UserFTP/files
% chown root:root /var/sftp/UserFTP
% chmod 755 /var/sftp/UserFTP

% chown UserFTP /var/sftp/UserFTP/files
% ls -ld /var/sftp/UserFTP
drwxr-xr-x 3 root root 4096 24. kvě 15.29 /var/sftp/UserFTP/

% ls -ld /var/sftp/UserFTP/files 
drwxr-xr-x 2 UserFTP root 4096 26. kvě 12.07 /var/sftp/UserFTP/files/
$ sftp UserFTP@localhost
sftp> cd files
sftp> put file123
% ls /var/sftp/UserFTP/files
file123

相关内容