Linux SFTP配置指南:轻松搭建安全传输
linux sftp配置

首页 2025-01-13 22:04:21



Linux SFTP配置详解 SFTP(SSH File Transfer Protocol)是一种基于SSH协议的文件传输协议,它通过加密的方式传输文件,保证了文件传输的安全性

    在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/

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道