centos7.6设置sftp服务

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。

CentOS自带 SSH 服务,直接配置即可

1. 查看ssh版本

sftp是基于ssh协议的,首先查看ssh版本,openssh-server版本至少得是4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

[root@iZuf6gglwrfdrwtaluuoe8Z ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

2. 创建用户和组

[root@iZuf6gglwrfdrwtaluuoe8Z ~]# groupadd sftp 
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# useradd -g sftp -s /sbin/nologin user1

3. 设置目录权限

 
 
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chown root:sftp /home/user1 
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chmod 755 -R /home/user1
#设置用户可以上传的目录,改目录下允许用户上传删除修改文件及文件夹 
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# mkdir /home/user1/upload
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chown -R user1:sftp /home/user1/upload
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chmod -R 755 /home/user1/upload

4. 修改配置文件sshd_config

vim /etc/ssh/sshd_config

修改为如下:

#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server 

#在最后面增加以下6行
Subsystem sftp internal-sftp 
Match Group sftp
ChrootDirectory /home/%u #设定属于用户组sftp的用户访问的根文件夹
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no #设置不允许SSH的X转发

5. 重启sshd服务

service sshd restart

或者

systemctl restart sshd

6. 验证sftp服务

MacBook-Pro:downloads$ sftp user1@10.10.10.200
user1@10.10.10.200's password:
Connected to 10.10.10.200.
sftp>ls
upload
sftp>

见到如上字样则证明成功

7. sftp常见命令

远程命令: cd, ls, pwd
本地命令:远程命令前加l , 如 lcd, lls, lpwd

或者

上传命令: put
下载命令:get
退出: bye 或者 exit

猜你喜欢

转载自www.cnblogs.com/cs99lzzs/p/10786795.html