linux-sftp服务配置

sftp 配置

创建用户
useradd -m ftp_ip_user-g sftp -s /sbin/nologin -d

配置 sftp
vim /etc/ssh/ssh_config

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /www/wwwroot/ftp_ip_user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

fatal: bad ownership or modes for chroot directory “/www/wwwroot/ftp_ip_user”

这个错误通常发生在使用SSH服务进行远程登录时,特别是当你尝试为特定用户设置chroot环境时。
chroot是一种安全机制,它将用户的根目录更改为另一个目录,从而限制用户只能在该目录及其子目录下操作。
报错信息fatal: bad ownership or modes意味着chroot目录的所有权或权限设置不正确,SSH服务无法以安全的方式访问该目录。

#sftp问题排查解决:

查看日志命令
tail -f /var/log/secure

排查用户账号是否过期命令
chage -l ftp_ip_user

修改密码
passwd ftp_ip_user

设置为永久不过期
chage -M -1 ftp_ip_user

检查/www/wwwroot/ftp_ip_user目录的所有权和权限。它应该只有root用户有写权限。可以使用以下命令来修复:

sudo chown root:root /www/wwwroot/ftp_ip_user
sudo chmod 0755 /www/wwwroot/ftp_ip_user

确保目录中没有任何不必要的文件或目录,特别是不应该有写权限给其他用户。

如果你使用的是sshd_config文件中的ChrootDirectory指令,确保指定的目录是你想要chroot jail的目录。

如果你在使用sftp服务,确保sshd_config文件中的Subsystem sftp指令指向正确的internal-sftp路径。

重启SSH服务以使更改生效。