目录
文章目录
一、概述
sftp采用的是ssh加密隧道,安装性方面比ftp要强一些,而且sftp依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装(vsftp服务), sftp是只要确保你的Linux 账号能连接,sftp默认连接账号就是Linux root账号和密码。 那麽如何在Centos7上配置 sftp服务呢?
二、机器准备
服务器ip | 主机名 | 系统版本 |
---|---|---|
192.168.2.55 | myhost | Centos7.2 |
三、查看openssh的版本
ssh -V 用命令查看openssh的版本,如果openssh的版本低于4.8p1,需要自行升级安装。
[root@myhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
四、创建sftp管理账户
- 创建账户并限制用户登录并创建文件夹为账户的家目录
[root@myhost ~]# mkdir -p /data/sftpuser
[root@myhost ~]# useradd -d /data/sftpuser -M -s /sbin/nologin sftpuser
- 设置密码
[root@myhost ~]# passwd sftpuser
- 修改sftpuser账户家目录执行权限与所属主为root
[root@myhost ~]# chmod 755 /data/sftpuser
[root@myhost ~]# chown root.sftpuser /data/sftpuser
- 创建⽤户⽤于存储⽤户上传的⽂件夹并授权给对应的组中的sftpuser用户
[root@myhost ~]# mkdir /data/sftpuser/upload
[root@myhost ~]# chmod 755 /data/sftpuser/upload/
[root@myhost ~]# chown -R sftpuser.sftpuser /data/sftpuser/upload/
五、修改/etc/ssh/sshd_config配置文件中关于sftp的配置
- 注释以下内容:
#Subsystem sftp /usr/libexec/openssh/sftp-server
- 新增配置如下:
# sftp setting
Subsystem sftp internal-sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Match Group sftpuser
ChrootDirectory /data/sftpuser/%u
六、关闭Selinux策略
[root@myhost ~]# sed -i s#enforcing#disabled#g /etc/sysconfig/selinux
[root@myhost ~]# setenforce 0 && getenforce
[root@myhost ~]# getenforce
七、重启sshd服务
[root@myhost ~]# systemctcl restart sshd
八、验证sftp登录
[root@myhost ~]# sftp -P 22 sftpuser@127.0.0.1
sftpuser@127.0.0.1's password:
九、使用FileZilla FTP Client连接SFTP服务器
输入主机IP地址、sftpuser用户名、sftpuser用户的密码、端口连接SFTP服务器,端口默认为22。