sftp
sftp比ftp更可取,加密传输,设置也简单。ftp过于繁琐,且是不安全的协议
先决条件
服务器 OpenSSH-Server 版本最低4.8
设置sftp用户
添加用户组
groupadd sftp
useradd -g sftp -s /sbin/nologin -M mysftp
passwd mysftp
useradd参数说明:
-g # 加入用户组
-s # 指定用户登入后所使用的shell
/sbin/nologin # 用户不允许登录
-M # 不要自动建立用户的登入目录
设置sftp
组根目录权限
chown root:sftp /home/wwwroot
chmod 755 /home/wwwroot
设置具体的站点目录权限:
chown www:sftp -R /home/wwwroot/default
chmod 775 -R /home/wwwroot/default
配置 sshd_config
vim /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftp #限制的用户组
ChrootDirectory /home/wwwroot #根目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
检测配置:
sshd -t
重启配置:
systemctl restart sshd
测试连接
sftp -P 22 sftpUser@127.0.0.1
若出现错误:
packet_write_wait: Connection to 127.0.0.1 port 222: Broken pipe
Couldn't read packet: Connection reset by peer
解决方法: 修改sftp进入目录的权限为750( 不能为777 )
该目录下的目录还可以是777
比如 我给的目录是 /home/file
先把该目录下全变成777 然后把该目录改成750 即可
chmod 777 -R /data/webroot/easy_swoole
chmod 750 /data/webroot/easy_swoole
参考: