diff --git a/data/sftp_test_result_report.md b/data/sftp_test_result_report.md new file mode 100644 index 0000000..efc9b21 --- /dev/null +++ b/data/sftp_test_result_report.md @@ -0,0 +1,247 @@ +# SFTP Client 测试结果报告 + +**测试时间**:2026-06-17 18:17 +**测试工具**:OpenSSH sftp client (命令行) +**测试环境**:MarkBaseSSH server (port 2024) + macOS +**测试用户**:demo (password: demo123) + +--- + +## 测试结果总结 ⭐⭐⭐⭐⭐ + +### ✅ 成功测试 + +| 测试项目 | 文件大小 | 结果 | MD5 校验 | +|---------|---------|------|---------| +| **基本连接** | - | ✅ 成功 | - | +| **目录浏览** | - | ✅ 成功 | - | +| **文件上传** | 1KB | ✅ 成功 | ✅ 一致 | +| **文件下载** | 1KB | ✅ 成功 | ✅ 一致 | +| **文件完整性** | 1KB | ✅ 成功 | ef45794633e8cf9b3746d536945d1f46 | + +### ❌ 失败测试 + +| 测试项目 | 文件大小 | 结果 | 问题 | +|---------|---------|------|------| +| **文件上传** | 5MB | ❌ 失败 | 文件大小 0B | +| **文件上传** | 10MB | ❌ 失败 | 文件大小 0B | +| **文件下载** | 10MB | ❌ 失败 | 文件大小 0B | + +--- + +## 详细测试记录 + +### 测试 1: 基本连接和目录浏览 ✅ + +**测试命令**: +```bash +sftp -P 2024 demo@127.0.0.1 <&1 | tail -1 +ls -lh /tmp/sftp_debug_1kb.bin + +echo "" +echo "=== 启用 SSH server 详细日志 ===" +echo "日志文件:/private/tmp/sftp_upload_debug.log" + +# 重启 SSH server,启用 debug 级别日志 +pkill -9 -f "markbase-core ssh-start" +sleep 2 + +RUST_LOG=debug /Users/accusys/markbase/target/release/markbase-core ssh-start > /private/tmp/sftp_upload_debug.log 2>&1 & +SSH_PID=$! +sleep 3 + +echo "SSH server 重启完成(PID: $SSH_PID)" +echo "" + +echo "=== 测试 1: 基本连接测试 ===" +sshpass -p 'demo123' sftp -P 2024 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v demo@127.0.0.1 <&1 | tail -5 +else + echo "远程文件不存在 ❌" +fi + +echo "" +echo "=== 详细日志分析 ===" +echo "查看完整的 SSH_FXP_OPEN 处理流程..." + +grep -B 5 -A 20 "SSH_FXP_OPEN.*debug" /private/tmp/sftp_upload_debug.log | head -100 + +echo "" +echo "=== 清理测试文件 ===" +rm -f /tmp/sftp_debug_1kb.bin /tmp/sftp_upload_debug.bin /tmp/sftp_download_debug.bin + +echo "" +echo "=== 测试完成 ===" +echo "日志文件位置:/private/tmp/sftp_upload_debug.log" +echo "请查看日志文件以诊断 SSH_FXP_WRITE 未出现的根本原因" \ No newline at end of file