一、什么sftp服务器
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。本身没有守护进程,是包含在ssh中,端口也是22。
sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装。
二、安装sftp服务器
创建用户组
groupadd sftpgroup
创建完成之后使用cat /etc/group命令组的信息
cat /etc/group
创建用户并且加入到这个用户组,并修改mysftp用户的密码
useradd -g sftpgroup -M -s /sbin/nologin mysftp
passwd mysftp
密码 Java_521
创建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp mysftp
设置Chroot目录权限
chown root:sftpgroup /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限
mkdir -p /data/sftp/mysftp/project
chown -R mysftp:sftpgroup /data/sftp/mysftp/project
chmod 755 /data/sftp/mysftp/project
chmod 755 设置用户的权限为
三、修改配置文件
vi /etc/ssh/sshd_config
将Subsystem sftp /usr/libexec/openssh/sftp-server 注释掉
在文件末尾添添加 加以下几行
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data/sftp/mysftp
ForceCommand internal-sftp
四、测试sftp
重启sshd服务,然后测试 sftp 用户名@ip地址
systemctl restart sshd.service
sftp本地登录
sftp mysftp@127.0.0.1
测试上传
put abc.txt
测试下载
get abc.txt /opt