目前越来越多的FTP客户端软件开始支持SSH协议上传和下载文件,这种协议方式就是SFTP。
SFTP的优势主要有两点,一是不需要再配置个FTP服务端;二是SSH协议是安全传输,上传和下载是经过加密的。
下面介绍下在最常用的服务器系统 CentOS Linux 7 上配置 SFTP 的方式!
一、sftp 安装
第一步:创建sftp服务用户组,创建sftp服务根目录:
groupadd sftp
#此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
chown -R root /var/sftp
chmod -R 755 /var/sftp
第二步:创建sftp服务用户:
#添加用户 使用参数 -s /sbin/nologin禁止用户通过命令行登录
useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent
第三步:为sftp服务用户添加密码
passwd silent
第四步:配置sshd_config:
vim /etc/ssh/sshd_config
注释掉下面这一行:
Subsystem sftp /usr/libexec/openssh/sftp-server
在sshd_config最后加入下面这几行:
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /home/sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面
第五步:重启sshd:
systemctl restart sshd
现在可以正常连接了,但是可能还有个问题,就是无法上传,于是我们需要设置下写入权限:
chown root -R /var/sftp/silent chmod -R 755 /var/sftp/silent
二、sftp 简单操作
测试
sftp [email protected]127.0.0.1 [email protected]127.0.0.1's password: