Files
markbase/docs/SSH_PHASE8_PLAN.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

3.3 KiB
Raw Blame History

SSH协议Phase 8实施计划

目标

  • 实现SCP协议参考OpenSSH scp.c
  • 实现rsync --server模式参考rsync源码
  • 集成到SSH服务器channel.rs

Phase 8工作量预估

代码量约800行 实施时间约2天

模块划分

  1. scp_handler.rs约400行- SCP协议处理
  2. rsync_handler.rs约400行- rsync协议处理

SCP协议实施计划

SCP协议概述

SCPSecure Copy Protocol基于SSH协议用于远程文件复制。

SCP命令类型

  • scp -fsource mode- 发送文件
  • scp -tdestination mode- 接收文件
  • scp -rrecursive- 递归复制目录

SCP协议流程参考OpenSSH scp.c

  1. 客户端发起exec请求"scp -t destination"
  2. 服务器确认('\0'
  3. 客户端发送文件命令:
    • C0644 size filename(创建文件)
    • D0755 0 dirname(创建目录)
    • E(结束目录)
    • T mtime atime(设置时间)
  4. 服务器确认('\0')或错误(错误消息)
  5. 客户端发送文件内容
  6. 服务器确认('\0'

SCP Handler实现要点

核心功能

  • 处理exec请求检测scp命令
  • SCP source mode-f
  • SCP destination mode-t
  • SCP recursive mode-r
  • 文件传输(发送/接收)
  • 目录传输(递归)
  • 时间设置mtime/atime
  • 错误处理

安全性保证

  • 路径安全canonicalize
  • 权限验证
  • 文件大小限制防止DoS

rsync协议实施计划

rsync --server模式

rsync使用SSH作为传输通道服务器端运行rsync --server模式。

rsync协议版本

  • rsync protocol version 30最新
  • 支持增量传输、压缩、校验

rsync --server模式流程参考rsync源码

  1. 客户端发起exec请求"rsync --server --sender ."
  2. 客户端发送rsync协议版本
  3. 服务器响应协议版本
  4. 客户端发送模块列表请求
  5. 服务器发送模块列表
  6. 客户端选择模块
  7. 服务器发送文件列表
  8. 客户端请求文件块
  9. 服务器发送文件块(增量传输)

rsync Handler实现要点

核心功能

  • 处理exec请求检测rsync命令
  • rsync --server模式
  • rsync --sender模式
  • 协议版本协商
  • 文件列表传输
  • 增量传输rolling checksum
  • 压缩传输zlib
  • 校验验证MD4/MD5

安全性保证

  • 模块路径限制
  • 文件权限验证
  • 传输大小限制

实施优先级

优先级1SCP协议必须实现

  • SCP是最常用的SSH文件传输方式
  • OpenSSH scp.c源码参考清晰
  • 实现相对简单约400行

优先级2rsync协议可选实现

  • rsync提供增量传输功能
  • 协议复杂度较高约400行
  • 可以考虑简化实现

下一步行动

  1. 创建scp_handler.rs模块
  2. 实现SCP source/destination mode
  3. 实现SCP recursive mode
  4. 测试SCP功能scp命令
  5. 创建rsync_handler.rs模块可选
  6. 实现rsync --server模式可选
  7. 测试rsync功能rsync命令

Phase 8实施计划完成 预计工作量约800行代码 预计时间约2天