linux下sftp服务配置

1.sftp的配置

1) 查看ssh版本

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

[root@izys605x4c311swvscc1y0z ~]# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2) 创建用户和组
将用户的shell
设置为/bin/false使他没有登陆shell的权限

useradd sftp -s /bin/false      

3) 给家目录更改属主并授权
家目录必须是root,权限可以是755或者750

chown root:sftp testsftp
chmod 700 -R testsftp

4) 编辑配置文件/etc/ssh/sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server      #注释掉这行
Subsystem sftp internal-sftp                                #增加以下6行
Match Group sftp                                            
ChrootDirectory /%u                 #设定属于用户组sftp的用户访问的根文件夹
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no                        #设置不允许SSH的X转发

#UseDNS no                              #注释掉
#AddressFamily inet                     #注释掉
#SyslogFacility AUTHPRIV                #注释掉    

5) 重启sshd服务

[root@izys605x4c311swvscc1y0z ~]# systemctl restart sshd
[root@izys605x4c311swvscc1y0z ~]# systemctl status sshd | grep Active
   Active: active (running) since Sun 2018-02-11 18:00:13 CST; 7s ago

6) 验证是否生效
在另一台客户机上,使用sftp 用户@IP进行连接

[root@izys605x4c311ss06lb63lz ~]# sftp root@192.168.2.183
root@192.168.2.183's password: 
Connected to 192.168.2.183.
sftp> ls
testsftp 

常见问题: 如果你链接服务器的时候出现下面的提示: Write failed: Broken pipe Couldn’t read packet: Connection reset by peer 这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

发布了19 篇原创文章 · 获赞 4 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览