
在Linux系统中,配置SFTP服务是一个常见的任务,它通常用于服务器与客户端之间的文件传输
本文将详细介绍如何在Linux系统中配置SFTP服务,确保每一步都清晰明了,以便读者能够轻松上手
一、前期准备 在配置SFTP之前,首先要确保系统中已经安装了OpenSSH服务器,因为SFTP是OpenSSH的一部分
可以通过以下命令查看OpenSSH的版本: ssh -V 确保版本大于4.8p1,如果版本过低,建议进行升级
另外,还需要规划好SFTP数据存储目录,最好为SFTP数据存储目录单独挂载一个LVM逻辑卷,方便后期动态调整存储空间大小
二、配置步骤 1. 创建SFTP组和用户 首先,需要创建一个SFTP用户组,然后创建SFTP用户并指定其所属组
以下命令用于创建SFTP组和用户: 创建SFTP组 groupadd sftp 创建SFTP用户,并指定其所属组为sftp,同时设置该用户不能登录到系统 useradd -g sftp -s /bin/false sftpuser 为SFTP用户设置密码 passwd sftpuser 2. 创建SFTP指定Chroot目录 Chroot目录是SFTP用户登录后的根目录,该用户只能在这个目录及其子目录中操作
可以使用以下命令创建Chroot目录: mkdir -p /data/sftp/ 3. 配置sshd_config文件 接下来,需要编辑sshd_config文件,添加SFTP相关的配置
使用以下命令打开sshd_config文件: vi /etc/ssh/sshd_config 找到以下行,并用#符号注释掉: Subsystem sftp /usr/libexec/openssh/sftp-server 在文件末尾添加以下配置: Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /data/sftp/ ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no 这些配置指定了SFTP服务使用内置的internal-sftp子系统,并限定了只有sftp组的用户才能访问
同时,设置了用户的根目录为/data/sftp/,并强制执行指定的命令,禁止TCP转发和X11转发
4. 修改Chroot目录权限及建立SFTP用户写入权限目录 由于Chroot目录及其所有上级目录的属主必须是root,且只有属主能拥有写权限,因此需要修改Chroot目录的权限
同时,由于Chroot目录只有root用户才有写权限,需要为SFTP用户创建一个可写目录
使用以下命令修改权限并建立目录: 修改Chroot目录权限 chown -R root:sftp /data/sftp/ chmod -R 755 /data/sftp/ 建立SFTP用户写入权限目录 mkdir /data/sftp/upload chown sftpuser:sftp /data/sftp/upload chmod 755 /data/sftp/upload 5. 重启sshd服务 配置完成后,需要重启sshd服务使配置生效
可以使用以下命令重启sshd服务: 对于CentOS 7.x之前的版本 service sshd restart 对于CentOS 7.x及之后的版本 systemctl restart sshd 6. 测试SFTP登录 最后,需要测试SFTP登录是否正常
可以使用以下命令进行本机测试和远程连接测试: 本机测试 sftp sftpuser@127.0.0.1 远程连接测试 sftp sftpuser@远程机IP地址 三、SFTP的使用 成功登录SFTP后,可以使用以下命令进行文件操作: - `cd`:更改远程工作目录 - `lcd`:更改和/或打印本地工作目录 - `ls`:列出远程目录的内容 - `lls`:列出本地目录的内容 - `pwd`:打印远程工作目录 - `lpwd`:打印本地工作目录 - `get`:下载文件到本地 - `put`:上传文件到远程 需要注意的是,SFTP用户切换目录只能在ChrootDirectory设置的目录及其子目录中切换
四、高级配置 1. 配置用户独立目录的SFTP服务 如果希望每个SFTP用户都有独立的存储目录,并且这些目录彼此间不可见,可以为每个用户分别配置Match条件块
以下是一个示例: 创建用户组sftpusers groupadd sftpusers 创建用户zhangsan和lisi,并指定其所属组为sftpusers sudo useradd -g sftpusers zhangsan sudo useradd -g sftpusers lisi 设置用户密码 sudo passwd zhangsan sudo passwd lisi 设置用户密码永不过期 sudo chage -m 0 -M 99999 -I -1 -E -1 zhangsan sudo chage -m 0 -M 99999 -I -1 -E -1 lisi 创建用户数据存储目录 sudo mkdir -p /sftpdata/zhangsan/data sudo mkdir -p /sftpdata/lisi/data 设置数据存储目录的属主和用户组 sudo chown zhangsan:sftpusers /sftpdata/zhangsan/data/ sudo chown lisi:sftpusers /sftpdata/lisi/data/
VMware使用中声音沙哑问题解析
Linux SFTP配置指南:轻松搭建安全传输
Hyper-V虚拟机:如何解决高延迟问题
VMware vCenter 5.0:虚拟化管理的革新与实战指南
Linux mailx -a附件发送技巧解析
VMware中RAID模拟实战指南
Hyper-V内部虚拟网络构建指南
Linux mailx -a附件发送技巧解析
Linux技巧:轻松定位文件第N行内容
Linux下的IPC机制详解
Linux高效清除命令大全
Linux为何选择开源之路
VMware ESXi网络内部配置与优化指南
Linux技巧:轻松查看其他终端会话
Linux系统只读模式解决技巧
Linux深信服:高效运维解决方案
Linux服务自动化管理技巧揭秘
前端开发者为何偏爱Linux系统
Linux Bash日期命令实用技巧