SFTP(Secure File Transfer Protocol ):sftp为ssh自带的服务,无需额外安装软件,使用和配置很方便
SFTP的优势主要有两点:
1、不需要再配置个FTP服务端;
2、SSH协议是安全传输,上传和下载是经过加密的,安全方面高于vsftp,由于传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。但sftp的安全性要比ftp高,因此sftp通常用于报表、对账单等对安全性要求较高的场景。
步骤:
系统环境配置
1、关闭Linux 的selinux
2、安装penssh-server
openssh-server 版本至少得 4.8p1, 因为配置权限需要版本添加的新配置项 ChrootDirectory 来完成
# yum -y install openssh-server openssh-clients # ssh -V
3、新建只用来登录sftp的账户
groupadd sftp useradd -g sftp -s /sbin/nologin jason passwd jason
4、sshd.conf配置
vi -b /etc/ssh/sshd_config 注释掉下面这一行: Subsystem sftp /usr/libexec/openssh/sftp-server
添加: Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/lib/container X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面
配置项说明:
#这行指定使用sftp服务使用系统自带的internal-sftp Subsystem sftp internal-sftp #这行用来匹配用户 Match User sftpuser #用chroot将用户的根目录指定到/home/sftp,这样用户就只能在/home/sftp下活动 ChrootDirectory /home/sftp AllowTcpForwarding no #指定sftp命令 ForceCommand internal-sftp
#启用internal-sftp Subsystem sftp internal-sftp #限制www用户的根目录 Match User www ChrootDirectory /home/sftp ForceCommand internal-sftp #限制blog和pay用户的根目录 Match Group sftp ChrootDirectory %h ForceCommand internal-sftp
创建共享目录
mkdir -p /var/lib/container/jason
注意SFTP共享的根目录是 /var/lib/container/
5、修改目录权限
1、ChrootDirectory的权限问题:
(1)设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限只能是 750 或者 755。
(2)目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。
(3)目录开始一直往上到系统根目录为止都不可以具有群组写入权限
2、共享目录权限问题:
目录所有者为jason,所有组为sftp,所有者有写入权限,而所有组无写入权限,权限为700、750或者755。可以根据情况具体设置
chown -R root:root /var/lib/container
chmod 755 /var/lib/container
chown -R jason:sftp /var/lib/container/jason
chmod 775 /var/lib/container/jason
6、重启sshd服务
systemctl restart sshd
7、测试
sftp -P 10022 [email protected]
常见问题:
SFTP Permission denied处理 com.jcraft.jsch.SftpException: Permission denied
问题的原因是,SFTP服务器的SELINUX没关闭。
packet_write_wait: Connection to 192.168.1.202 port 10022: Broken pipe Couldn't read packet: Connection reset by peer
原因是ChrootDirectory的权限问题
参考:
https://www.cnblogs.com/yyy-blog/p/11130302.html
https://blog.csdn.net/michaelwoshi/article/details/94184288
https://cloud.tencent.com/developer/article/1844272
https://support.huawei.com/enterprise/zh/knowledge/EKB1100061659
https://www.cnblogs.com/wish123/p/7071317.html
标签:jason,部署,ChrootDirectory,sftp,internal,根目录,权限 From: https://www.cnblogs.com/xiaoyou2018/p/17817964.html