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

132 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 -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天**