1.linux操作系统SSH和SFTP共用端口和服务,所以只要服务器开启了SSH即可以使用SFTP,检查当前SFTP版本信息
[root@localhost ~]# rpm -qa|grep ssh libssh2-1.4.3-10.el7_2.1.x86_64 openssh-7.4p1-13.el7_4.x86_64 openssh-server-7.4p1-13.el7_4.x86_64 openssh-clients-7.4p1-13.el7_4.x86_64
2.创建用户和设置权限
[root@localhost ~]# mkdir -pv /data/sftp/ #创建sftp数据根目录 [root@localhost ~]# chown root:root -R /data/sftp/ #设置root对根目录的权限,一定要是root用户,否则无法chroot [root@localhost ~]# chmod -R /data/sftp/ #权限最低需要保证普通用户可以进入 [root@localhost ~]# groupadd sftpgroup #sftp服务组,sftp服务可以设置匹配组或单个用户来设置,如果是单个用户可以忽略 [root@localhost ~]# useradd -d /data/sftp/user1 -m -g sftpgroup -s /sbin/nologin user1
#创建用户user1,设置目录权限为user1,并添加到组sftpgroup [root@localhost ~]# id user1 [root@localhost ~]# echo "" |passwd --stdin user1 #修改用户user1的密码。
3.修改sshd服务配置文件etc/ssh/sshd_config,以组的方式管理sftp用户权限.
1 #TCPKeepAlive yes 2 #PermitUserEnvironment no 3 #Compression delayed 4 #ClientAliveInterval 0 5 #ClientAliveCountMax 3 6 #UseDNS no 7 #PidFile /var/run/sshd.pid 8 #MaxStartups 10:30:100 9 #PermitTunnel no 10 #ChrootDirectory none 11 #VersionAddendum none 12 13 # no default banner path 14 #Banner none 15 16 # override default of no subsystems 17 # Subsystem sftp /usr/libexec/openssh/sftp-server 18 #注释掉上面一行 19 20 # Example of overriding settings on a per-user basis 21 #Match User anoncvs 22 # X11Forwarding no 23 # AllowTcpForwarding no 24 # PermitTTY no 25 # ForceCommand cvs server 26 GSSAPIAuthentication no 27 UseDNS no 28 #使用sftp服务使用系统自带的internal-sftp 29 Subsystem sftp internal-sftp 30 #匹配sftpgroup组的用户,如果要匹配多个组,多个组之间用逗号分割 31 Match Group sftpgroup 32 #用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动 33 ChrootDirectory /data/sftp/%u 34 #强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令 35 ForceCommand internal-sftp 36 #不允许转发TCP协议,默认是yes,如果用户可以shell访问则建议为yes 37 AllowTcpForwarding no 38 #是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。如果允许X11转发并且sshd()代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。如果启用了 UseLogin ,那么X11转发将被自动禁止。 39 X11Forwarding no
4.重启服务
[root@localhost ~]# systemctl restart sshd
#重启服务
5.验证用户权限
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库