linux下sftp服务配置

本文详细介绍如何配置SFTP服务,包括检查SSH版本、创建用户及设置、配置文件编辑、重启服务等步骤,并解决常见连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值