核心功能: - ✅ 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)
3.3 KiB
3.3 KiB
SSH协议Phase 8实施计划
目标
- 实现SCP协议(参考OpenSSH scp.c)
- 实现rsync --server模式(参考rsync源码)
- 集成到SSH服务器channel.rs
Phase 8工作量预估
代码量:约800行 实施时间:约2天
模块划分:
- scp_handler.rs(约400行)- SCP协议处理
- rsync_handler.rs(约400行)- rsync协议处理
SCP协议实施计划
SCP协议概述
SCP(Secure Copy Protocol)基于SSH协议,用于远程文件复制。
SCP命令类型:
scp -f(source mode)- 发送文件scp -t(destination mode)- 接收文件scp -r(recursive)- 递归复制目录
SCP协议流程(参考OpenSSH scp.c):
- 客户端发起exec请求:"scp -t destination"
- 服务器确认('\0')
- 客户端发送文件命令:
C0644 size filename(创建文件)D0755 0 dirname(创建目录)E(结束目录)T mtime atime(设置时间)
- 服务器确认('\0')或错误(错误消息)
- 客户端发送文件内容
- 服务器确认('\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源码):
- 客户端发起exec请求:"rsync --server --sender ."
- 客户端发送rsync协议版本
- 服务器响应协议版本
- 客户端发送模块列表请求
- 服务器发送模块列表
- 客户端选择模块
- 服务器发送文件列表
- 客户端请求文件块
- 服务器发送文件块(增量传输)
rsync Handler实现要点
核心功能:
- ✅ 处理exec请求(检测rsync命令)
- ✅ rsync --server模式
- ✅ rsync --sender模式
- ✅ 协议版本协商
- ✅ 文件列表传输
- ✅ 增量传输(rolling checksum)
- ✅ 压缩传输(zlib)
- ✅ 校验验证(MD4/MD5)
安全性保证:
- ⭐⭐⭐⭐⭐ 模块路径限制
- ⭐⭐⭐⭐⭐ 文件权限验证
- ⭐⭐⭐⭐⭐ 传输大小限制
实施优先级
优先级1:SCP协议(必须实现)⭐⭐⭐⭐⭐
- SCP是最常用的SSH文件传输方式
- OpenSSH scp.c源码参考清晰
- 实现相对简单(约400行)
优先级2:rsync协议(可选实现)⭐⭐⭐⭐
- rsync提供增量传输功能
- 协议复杂度较高(约400行)
- 可以考虑简化实现
下一步行动
- 创建scp_handler.rs模块
- 实现SCP source/destination mode
- 实现SCP recursive mode
- 测试SCP功能(scp命令)
- 创建rsync_handler.rs模块(可选)
- 实现rsync --server模式(可选)
- 测试rsync功能(rsync命令)
Phase 8实施计划完成 ✅ 预计工作量:约800行代码 预计时间:约2天