目录
sftp介绍
Sftp配置文件
Sftp连接失败问题梳理方法
Sftp常见报错:Connection reset by peer
sftp介绍
安全文件传输协议SFTP(SSH File Transfer Protocol)是文件传输协议(FTP)的安全版本,也是SSH协议的一部分,可通过安全SHELL(SSH)数据流轻松进行数据传输和数据访问。SFTP也被称为SSH文件传输协议。它提供了一个安全的连接来传输文件,并在本地和远程系统上遍历文件系统。SFTP中的加密是通过SSH连接来完成的,文件可以通过WinSCP和SFTP客户端进行传输。
Sftp配置文件
# sftp-server 和 internal-sftp 都是 OpenSSH 中用于提供 SFTP(Secure File Transfer Protocol)服务的组件,internal-sftp 由 sshd 进程直接提供,不需要独立的二进制文件,因此更加安全可靠,综上所述,internal-sftp 相比于独立的 sftp-server 具有更高的安全性、更简单的配置因此,在提供 SFTP 服务时,建议优先考虑使用 internal-sftp。
注释此行#Subsystem sftp /usr/libexec/openssh/sftp-server
添加此行Subsystem sftp internal-sftp
Match Group ${用户组} 指以下子行配置规则针对sftp用户组
Match user ${用户} 指以下子行配置规则针对sftp用户
ChrootDirectory ${目录} 设定属于用户组 sftp 的用户访问的根文件夹
ForceCommand internal-sftp 该行强制执行内部 sftp
AllowTcpForwarding no 是否允许 TCP 转发 yes是开启/no是关闭
X11Forwarding no 是否允许进行 X11 转发 yes是开启/no是关闭
Sftp连接失败问题梳理方法
1) 检查服务sshd和端口,默认情况下如果sshd服务没有启动成功那么sftp也无法正常使用。
# systemctl status sshd
# 如上图没有正常启动,查看/var/log/messages发现配置文件错误。
# 修改/etc/ssh/sshd_config文件
# 重启sshd 服务
# 检查端口:netstat -an | grep 22
2) 检查配置文件“/etc/ssh/sshd_config”,正常情况下配置文件如下图。
# 更改“/etc/ssh/sshd_config”后,需要重启sshd服务才可生效。
# 重启sshd:systemctl restart sshd
3)检查配置/var/log/secure 日志排查错误原因。
(如下图通过日志提示:从192.168.59.66 41262 ssh2端口输入root密码失败)
4) 查看账户密码是否过期。
# chage -l
# 更改密码有效期:chage -M 99999
Sftp常见报错:Connection reset by peer
报错:Connection reset by peer
原因:/data/sftp/sftpuser(ChrootDirectory) 目录的用户必须为 root,权限755
注:此目录权限和属主不可随意增加特殊权限或更改,会造成sftp功能失效