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)
This commit is contained in:
131
docs/SSH_PHASE8_PLAN.md
Normal file
131
docs/SSH_PHASE8_PLAN.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 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协议概述
|
||||
SCP(Secure Copy Protocol)基于SSH协议,用于远程文件复制。
|
||||
|
||||
**SCP命令类型**:
|
||||
- `scp -f`(source mode)- 发送文件
|
||||
- `scp -t`(destination mode)- 接收文件
|
||||
- `scp -r`(recursive)- 递归复制目录
|
||||
|
||||
**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)
|
||||
|
||||
**安全性保证**:
|
||||
- ⭐⭐⭐⭐⭐ 模块路径限制
|
||||
- ⭐⭐⭐⭐⭐ 文件权限验证
|
||||
- ⭐⭐⭐⭐⭐ 传输大小限制
|
||||
|
||||
---
|
||||
|
||||
## 实施优先级
|
||||
|
||||
**优先级1**:SCP协议(必须实现)⭐⭐⭐⭐⭐
|
||||
- SCP是最常用的SSH文件传输方式
|
||||
- OpenSSH scp.c源码参考清晰
|
||||
- 实现相对简单(约400行)
|
||||
|
||||
**优先级2**:rsync协议(可选实现)⭐⭐⭐⭐
|
||||
- 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天**
|
||||
Reference in New Issue
Block a user