linux (centos7)下安装sftp,sftp上传下载文件

本文详细介绍如何搭建SFTP服务,包括创建用户、配置权限及验证连接等步骤,并提供了具体的命令示例。此外,还介绍了如何通过SFTP进行文件上传和下载操作。

一、sftp搭建

1.创建sftp组groupadd sftp  创建完成之后使用cat /etc/group命令组的信息



2.创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码

useradd -g sftp -s /bin/false mysftp  

passwd mysftp 


3.新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录

mkdir -p /data/sftp/mysftp  

usermod -d /data/sftp/mysftp mysftp


4.编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config

将如下这行用#符号注释掉

# Subsystem      sftp    /usr/libexec/openssh/sftp-server  

并在文件最后面添加如下几行内容然后保存


5.设置Chroot目录权限

chown root:sftp /data/sftp/mysftp  

chmod 755 /data/sftp/mysftp


6.新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限

mkdir /data/sftp/mysftp/upload  

chown mysftp:sftp /data/sftp/mysftp/upload  

chmod 755 /data/sftp/mysftp/upload


7.关闭selinux并重启sshd服务,然后测试


8.在其他服务器上进行验证,sftp 用户名@ip地址


二、sftp文件传输

1.登录: sftp  name@ip

2.上传文件:put /home/username1/test.zip   /home/sftpusername/upload/

3.下载文件:get  /home/sftpusername/upload/test.zip  /home/username1

<think>首先,用户的问题是关于在CentOSLinux服务器上安装配置SFTP服务器。我需要参考提供的引用内容来构建回答。引用的内容:-引用[1]:提到了在Linux服务器上安装使用SFTP,使用internal-sftp而不是sftp-server,配置组为sftpgroup,并重启sshd服务。-引用[2]:针对CentOS搭建SFTP,提供了配置示例,包括Subsystem设置、MatchGroup等。-引用[3]:讨论CentOS6和7SFTP配置,包括创建sftp组。-引用[4]:关于CentOS配置SFTP,注释掉原有Subsystem,添加新的internal-sftp配置。系统级指令:-所有行内数学表达式使用$...$,但在这个主题中是Linux配置,没有数学内容,所以可能不适用。我需要注意如果有变量或技术术语如何处理。-独立公式必须使用$$...$$,但同样,这里可能不需要。-LaTeX语法正确:在技术指导中,可能需要用代码块展示命令。-使用中文回答。-生成相关问题:在回答末尾添加相关问题。-回答中引用的段落末尾自然地添加引用标识:[^n]用户的问题是基于用户上次的问题和我的回答。消息历史中,用户的问题是:“我想查找在LinuxCentOS服务器上安装SFTP服务器的指南或教程请问如何在CentOSLinux服务器上安装配置SFTP服务器”。所以,我需要提供完整的安装配置指南。结构回答:-回答应结构清晰,帮助用户逐步解决问题。-保证回答真实可靠。从引用中提取关键步骤:1.创建sftp组:groupaddsftp2.创建用户并加入sftp组:useradd-gsftp-s/sbin/nologinusername3.配置SSHD配置文件:-注释掉原有的Subsystem行-添加新的配置:Subsystemsftpinternal-sftp,以及MatchGroup设置4.设置Chroot目录权限5.重启sshd服务:systemctlrestartsshd完整步骤:-更新系统(可选)-安装OpenSSH服务器(如果未安装)-创建SFTP组-创建SFTP用户-编辑SSHD配置文件-设置Chroot目录-测试连接回答结构:1.引言:简要解释SFTP和配置目的。2.逐步安装配置步骤:a.步骤1:创建SFTP组b.步骤2:创建SFTP用户c.步骤3:配置SSHD服务d.步骤4:设置权限e.步骤5:重启服务并测试3.注意事项。4.代码块展示命令。5.相关问题生成。添加引用标识:-在描述步骤时,如果引用特定部分,添加如[^1]或[^2],但引用索引是[^1],[^2],[^3],[^4]。-参考用户提供引用:"上述引用仅供参考...",所以我需要基于这些构建,但引用标识应放在相关部分。例如:-在讨论配置SSHD时,提到使用internal-sftp,参考[^1],[^2]等。相关问题生成:-在末尾添加2-3个相关问题,如:1.如何验证SFTP连接的安全性?2.SFTP与FTP有什么主要区别?3.如何为多个用户配置独立的Chroot环境?使用中文回答。</think> 以下是在CentOS Linux服务器上安装和配置SFTP服务器的完整指南。SFTP(SSH File Transfer Protocol)通过SSH协议提供安全的文件传输,避免使用不安全的FTP。我将基于您提供的引用内容([^1], [^2], [^3], [^4])并参考行业标准实践,提供分步说明。整个过程包括创建专用用户、配置SSHD服务、设置权限和测试连接。所有命令均需以root权限执行。 ### 步骤1: 前提准备 - **更新系统**(可选,但推荐):确保系统是最新状态,避免兼容性问题。 ```bash sudo yum update -y ``` - **安装OpenSSH服务器**(如果未安装):CentOS默认包含OpenSSH,但需验证。 ```bash sudo yum install openssh-server -y ``` ### 步骤2: 创建SFTP组和用户 - **创建专用SFTP组**:使用`groupadd`命令创建一个新组(如`sftpgroup`),用于管理SFTP用户[^1][^3]。 ```bash groupadd sftpgroup ``` - **创建SFTP用户**:为每个用户指定该组,并禁用shell登录以确保安全(例如,创建一个用户`sftpuser`)。 ```bash useradd -g sftpgroup -s /sbin/nologin sftpuser passwd sftpuser # 设置用户密码 ``` 提示:您可以创建多个用户,只需重复此步骤并指定相同的组。 ### 步骤3: 配置SSHD服务 - **编辑SSHD配置文件**:打开`/etc/ssh/sshd_config`。 ```bash sudo vi /etc/ssh/sshd_config ``` - **注释原有SFTP行**:在文件末尾附近,找到并注释掉`Subsystem sftp`行(原始配置可能使用`sftp-server`)[^4]。 ``` # Subsystem sftp /usr/libexec/openssh/sftp-server ``` - **添加新配置**:在文件末尾添加以下内容,指定使用`internal-sftp`子系统,限制组用户Chroot目录(例如`/data/sftp/%u`,其中`%u`代表用户名),并禁止端口转发[^1][^2][^4]。 ``` Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /data/sftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no ``` 关键点说明: - `ChrootDirectory`: 指定用户根目录(用户无法访问该目录之外的路径)。 - `ForceCommand internal-sftp`: 强制用户仅使用SFTP,禁止SSH shell访问。 - 配置基于用户组(`Match Group`),方便管理多个用户[^1][^3]。 ### 步骤4: 设置Chroot目录和权限 - **创建目录**:为每个用户创建Chroot目录,并设置严格的权限。 ```bash sudo mkdir -p /data/sftp/sftpuser # 替换 sftpuser 为实际用户名 ``` - **分配所有权**:将目录所有者设为root,组设为`sftpgroup`,用户只读权限以防止越权[^2][^4]。 ```bash sudo chown root:sftpgroup /data/sftp/sftpuser sudo chmod 755 /data/sftp/sftpuser ``` - **创建用户子目录**:在Chroot目录内创建`upload`等子目录,用户可读写(例如用于文件上传)。 ```bash sudo mkdir /data/sftp/sftpuser/upload sudo chown sftpuser:sftpgroup /data/sftp/sftpuser/upload sudo chmod 770 /data/sftp/sftpuser/upload ``` ### 步骤5: 重启服务并测试 - **重启SSHD服务**:应用配置更改。 ```bash sudo systemctl restart sshd ``` - **验证服务状态**:确保SSHD运行正常。 ```bash sudo systemctl status sshd ``` - **测试SFTP连接**: - 从客户端使用SFTP客户端(如`lftp sftp://sftpuser@服务器IP`)。 - 示例命令(在客户端执行): ```bash sftp sftpuser@服务器IP # 输入密码后,应仅能访问 /upload 目录 ``` ### 注意事项 - **安全性**:使用强密码或SSH密钥认证,避免用户越权。 - **兼容性**:本指南适用于CentOS 7/8(CentOS 6类似,但服务命令使用`service sshd restart`)[^3]。 - **错误排查**:如果连接失败,检查`/var/log/secure`日志。 - **参考细节**:配置`internal-sftp`替代`sftp-server`提高性能和安全性[^1][^4];Chroot目录权限必须正确设置[^2]。 ### 相关问题 1. 如何为多个SFTP用户设置独立的共享目录?[^2][^4] 2. SFTP与SCP有什么区别,哪种更适用于自动化文件传输?[^1] 3. 如何监控和审计SFTP服务器的文件传输活动?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值