报错
登录:
sftp sftpuser@191.168.123.100
报错:
寻找错误
?参考链接:https://eternalcenter.com/debug-client_loop-send-disconnect-broken-pipe/
SFTP 目录的所属主必须是 root,权限最高只能是 755,否则就算此目录的所属主是此 SFTP 用户也会报错。
解决错误
步骤一:将 SFTP 目录的所属主设置为 root
例:chown root:sftpuser /home/sftp/tmsftp/
步骤二:将 SFTP 目录的权限设置为 755
例:chmod 755 /home/sftp/tmsftp
SFTP 账号创建
添加用户组和用户。(注意目录权限设置不正确会导致无法上传文件)
设置用户密码永不过期
chage -M 99999 -W 7 tmsftp
查看密码过期情况
chage tmsftp -l
返回的结果类似以下:
创建sftp的登录目录并设置权限和所属主
配置sshd_config
vim /etc/ssh/sshd_config
找到
Subsystem sftp /usr/libexec/openssh/sftp-server
把它改为
Subsystem sftp internal-sftp
然后在文件的最下面增加以下配置,注意“Match”以下的4个配置项,前面要加空格,表示它们是属于Match 这个配置的子配置项
注意:上面的“ForceCommand internal-sftp -d /files”中的/files指定了登录后的默认目录是/home/sftp/tmsftp/files,没有这个“-d”参数它默认是登录到/home/sftp/tmsftp,而由于目录权限设置的要求,不能把ChrootDirectory指向/home/sftp/tmsftp/files,因为它不满足ChrootDirectory对属主和属组是root:sftpuser的要求。
重启sshd
systemctl restart sshd
或
service sshd restart