Files
markbase/docs/SSH_PHASE8_PLAN.md
T
Warren 1300a4e223
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天**