当前位置: 首页 > news >正文

ssh配置sftp,实现上传下载文件

1. 配置 sftp

SSH 和 SFTP(SSH 文件传输协议)是紧密相关的。SFTP 是 SSH 协议的一部分,它提供了安全的文件传输功能。配置 SFTP 实际上就是配置 SSH 服务器以允许 SFTP 连接。以下是配置 SFTP 的详细步骤:

zhongding 只能通过 SFTP 访问 /data/zhongding 目录,且无法查看或访问其他路径:
1. 创建用户与目录结构
# 创建用户(主目录设为 /data/zhongding)
useradd -d /data/zhongding -m zhongding
passwd zhongding  # 设置密码# 创建目录结构
mkdir -p /data/zhongding/zhongding    #Chroot目录,必须由 root 拥有
chown root:root /data/zhongding
chmod 755 /data/zhongding  #用户可写目录,权限由zhongding拥有
chown zhongding:zhongding /data/zhongding/zhongding
chmod -R 755 /data/zhongding/zhongding2. 配置 SSH 服务
# 备份原始配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak#3.ssh里面开启sftp
vim /etc/ssh/sshd_config
# 使用‌独立的外部进程‌处理 SFTP 请求(不推荐)
#Subsystem sftp /usr/libexec/openssh/sftp-server# 使用SSH服务‌内置的SFTP模块‌处理请求(推荐,可配合 Match 块强制用户仅使用 SFTP)
Subsystem sftp internal-sftp -f AUTH -l INFO#4. 添加 SFTP 限制配置
cat << EOF | sudo tee -a /etc/ssh/sshd_config
# 限制 zhongding 用户只能通过 SFTP 访问指定目录
Match User zhongding   #条件匹配指令‌,用于限定后续配置项仅对特定用户生效,Match User 块内的配置需缩进ForceCommand internal-sftp         #强制用户会话仅使用内置的SFTP服务,禁止执行其他SSH命令或Shell登录ChrootDirectory /data/zhongding    #将用户的根目录锁定到指定路径(/data/zhongding),用户无法访问该目录外的文件系统AllowTcpForwarding no		#禁止用户通过SSH隧道进行端口转发(如本地/远程端口映射)X11Forwarding no  #禁用X11图形界面转发功能
EOF# 重启 SSH 服务
systemctl restart sshd

Subsystem 命令解释

#使用SSH服务‌内置的SFTP模块‌处理请求(推荐,可配合 Match 块强制用户仅使用 SFTP)
Subsystem sftp internal-sftp -f AUTH -l INFOinternal-sftp:调用 OpenSSH 内置 SFTP 服务器,无需外部程序。
-f AUTH:将日志写入系统认证日志(如/var/log/auth.log)。
-l INFO:设置日志级别为 “信息”,记录连接、传输等操作

2. 客户端连接sftp 方式

2.1. 命令行工具连接

2.1.1. Linux/macOS:使用内置的 sftp 命令

# 格式:sftp [用户名@]服务器地址[:端口]
sftp user@example.com       # 默认使用 22 端口
sftp -P 2222 user@example.com  # 指定非标准端口(如 2222)#xshell 建立一个sftp协议的连接,也可以连接# 连接上后相关操作命令
# 文件操作
put local_file.txt           # 上传本地文件到服务器
put -r local_dir              # 递归上传目录
get remote_file.txt          # 下载服务器文件到本地
get -r remote_dir             # 递归下载目录# 目录操作
ls                         # 查看服务器当前目录文件
lls                        # 查看本地当前目录文件
cd /path/to/server_dir      # 切换服务器目录
lcd /path/to/local_dir      # 切换本地目录# 其他
help                       # 查看帮助
exit                       # 退出连接

2.2. 图形化 SFTP 客户端(适合非技术用户)

FileZilla(跨平台,免费开源)

  • 下载与安装:从 FileZilla 官网 下载对应系统的安装包。
  • 连接步骤
    1. 打开 FileZilla,点击 “文件”→“站点管理器”。
    2. 点击 “新建站点”,填写:
      • 协议:选择 “SFTP”。
      • 主机:输入服务器 IP 或域名。
      • 端口:默认 22(如非标准端口需修改)。
      • 登录类型:选择 “正常”,输入用户名和密码。
    1. 点击 “连接”,验证服务器指纹(首次连接时)。
  • 操作方式:左侧为本地文件,右侧为服务器文件,直接拖拽即可上传 / 下载。
http://www.lryc.cn/news/572171.html

相关文章:

  • uni-app总结4-项目配置+HBuilder插件使用+uni插件使用
  • 正则表达式一些例子
  • 视频续播功能实现 - 断点续看从前端到 Spring Boot 后端
  • 【Bug:docker】--Docker同时部署Dify和RAGFlow出现错误
  • web3 浏览器注入 (如 MetaMask)
  • 无人机电调技术要点与突破解析!
  • 插值与模板字符串
  • 宇鹿家政服务系统小程序ThinkPHP+UniApp
  • Spring Boot 工程启动以后,我希望将数据库中已有的固定内容,打入到 Redis 缓存中,请问如何处理?
  • WEB安全--WAF的绕过思路
  • Flutter中FutureBuilder和StreamBuilder
  • 对gateway和nocas的理解
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_项目里程碑示例(CalendarView01_22)
  • 局域网即时通讯软件评测:4款支持私有化部署的通讯软件对比
  • 2025 Java EasyExcel 基于Excel模板填充数据 SpringBoot+Mybatis-Flex
  • el-image在表格中显示,弹出的预览图片被遮挡,如何解决
  • 【网络空间安全】数据安全
  • 蜻蜓Q系统的技术演进:从Laravel 6到Laravel 8的升级之路-优雅草卓伊凡
  • 时序数据库概念及IoTDB特性详解
  • 若依导出模板时设置动态excel下拉框(表连接的)
  • 企微CRM系统中的任务分配与效率提升技巧
  • Mac电脑 - Sublim Text 代码编辑器
  • 大数据基础学习指南:从核心概念到技术生态全景
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • Vue3中使用 Vue Flow 流程图方法
  • 在 Dify 平台部署一个 知识库问答(KBQA) 工作流
  • 设计模式之五大设计原则(SOLID原则)浅谈
  • 进程间通信2(命名管道)linux
  • 专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载
  • day35-Django(1)