Commit Graph
41 Commits
Author SHA1 Message Date
GreenhandTan 4fc4e7ec42 chore: 添加KEX详细字节调试日志并修复package.json中的wrangler执行方式 2026-06-14 10:05:56 +08:00
GreenhandTan 5c1aeedb65 config: 配置自定义域名 ssh.newbietan.cn 并禁用默认的 workers.dev 分配 2026-06-14 09:32:47 +08:00
GreenhandTan 6fdd83e631 fix: 解决主机密钥算法不兼容导致密钥协商卡死的问题并健全TCP连接断开处理 2026-06-14 09:29:28 +08:00
GreenhandTan e85bcee10e style: 将最新的赛博朋克主题UI与样式迁移至模块化前端项目并重新编译 2026-06-14 09:24:22 +08:00
GreenhandTan ddf2156103 fix: 修复前端资源内嵌时由于 String.replace 占位符解析引发的乱码与DOM损坏问题 2026-06-14 09:21:19 +08:00
GreenhandTan 5ed25efe6f fix: 修复SSH自定义协议连接缺陷并优化前端集成构建流程 2026-06-14 09:12:46 +08:00
TanXin 58432afd04 fix: 修复SSH协议实现和改善错误处理
- 修复nonce构造方法,使用字节操作替代DataView
- 修复密钥派生函数,正确编码H参数为SSH字符串
- 改善版本交换处理,正确解析CRLF分割的版本信息
- 添加SSH_MSG_CHANNEL_OPEN_FAILURE消息类型支持
- 清理冗余调试日志,保留关键调试信息
- 改善错误处理和状态管理
- 添加通道打开失败和PTY请求失败处理
2026-06-13 21:17:41 +08:00
TanXin 806fd2c9ec fix: encode session_id as SSH string in key derivation + add AES-GCM AAD
Key derivation: session_id must be encoded as SSH string (4-byte length
prefix + value) per OpenSSH implementation, matching how shared_secret
is already encoded as mpint.

AES-GCM: pass packet_length as additionalData (AAD) per RFC 5647.
2026-06-13 00:45:04 +08:00
TanXin b4da52e645 fix: add AES-GCM AAD (packet_length) for SSH RFC 5647 compliance
AES-GCM requires the 4-byte packet_length field as Additional
Authenticated Data (AAD). Without this, the server's MAC verification
fails and it closes the connection.
2026-06-13 00:06:42 +08:00
TanXin 295c453fba fix: restore seqNum resets after NEWKEYS test 2026-06-13 00:02:39 +08:00
TanXin 96482c1a2c test: try no seqNum reset at NEWKEYS 2026-06-12 23:54:19 +08:00
TanXin 738c206cdb fix: keep parser seqNum at 3 for EXT_INFO after NEWKEYS 2026-06-12 23:46:58 +08:00
TanXin 5e5375430f debug: add detailed key exchange and encryption logging 2026-06-12 23:42:10 +08:00
TanXin 9f248777c4 fix: send SERVICE_REQUEST before auth per RFC 4252 2026-06-12 23:37:32 +08:00
TanXin 344e4534c2 fix: 修复 AES-GCM nonce 构造和解密认证标签问题,添加调试日志
- 修复 buildNonce: 使用 XOR 替代直接替换 (OpenSSH 规范要求)
- 修复 nextPacket: 传入完整 ciphertext+tag 给 AES-GCM 解密
- 保留 NEWKEYS 后序列号重置为 0
- 添加加密/解密调试日志和前端状态消息
2026-06-12 23:33:36 +08:00
IT d355e2c10c fix: NEWKEYS 后重置序列号为 0(加密上下文切换) 2026-06-12 19:01:43 +08:00
IT 8c5f0fa6ed fix: AES-GCM 模式下 packet_length 不加密 (RFC 5647)
- Builder: 加密时只加密 length 之后的数据,保留明文 length 字段
- Parser: 解密时跳过 length 字段,只解密后续数据
- 通过 hasAuthTag 参数区分 AES-GCM 和普通模式
2026-06-12 18:44:17 +08:00
IT 448547ed5b fix: 修复 encrypt/decrypt 异步调用未 await 导致 Promise 写入 socket 的问题
- SSHPacketBuilder.build 改为 async,await encrypt 函数
- SSHPacketParser.nextPacket 改为 async,await decrypt 函数
- 所有调用点加上 await
2026-06-12 18:31:43 +08:00
IT 4a94323cdd debug: 改进错误日志,显示具体错误信息 2026-06-12 18:29:26 +08:00
IT e49f7fe4ef fix: 修复 SSH 协议实现的多个关键 bug
- ECDH_INIT 发送原始 EC 点而非 SSH 公钥 blob
- Exchange hash 计算使用 encodeString 包装所有字段
- NEWKEYS 以明文发送后再启用加密
- AES-GCM 模式下 MAC 算法改为 none
- 修复 WebSocket 发送 Uint8Array 时 buffer 偏移问题
2026-06-12 18:22:02 +08:00
IT cbafaef1ac debug: 添加完整的 SSH 流程调试日志 2026-06-12 17:45:56 +08:00
IT bf9003d176 debug: 添加凭据接收调试日志 2026-06-12 17:41:59 +08:00
IT 9c3168cb8d fix: 清理重复代码 2026-06-12 17:37:19 +08:00
IT 890d3055dc security: 凭据通过 WebSocket 消息传递,不再暴露在 URL 中 2026-06-12 17:35:42 +08:00
IT 2c44d4fedd debug: 添加更详细的 KEX 调试日志 2026-06-12 17:33:32 +08:00
IT b09eb5bad7 debug: 添加 KEX 流程调试日志 2026-06-12 17:27:23 +08:00
IT c3fb472b2b fix: KEX 阶段不需要 GCM auth tag 2026-06-12 17:19:02 +08:00
IT 54bf260817 debug: 添加 SSH 协议调试日志 2026-06-12 17:14:13 +08:00
IT 68014add8b fix: 修复 shell 状态处理,添加调试日志 2026-06-12 17:08:42 +08:00
IT 103065245d feat: 重构终端页面 UI 为赛博朋克风格 2026-06-12 16:59:34 +08:00
IT 279c0eb64a feat: 重构前端 UI 为赛博朋克风格 2026-06-12 16:55:30 +08:00
IT f8c3b47868 fix: DO 直接处理 WebSocket 升级 2026-06-12 16:40:35 +08:00
IT 959596e970 fix: 添加详细的错误日志 2026-06-12 16:29:29 +08:00
IT 798ad655aa fix: 使用正确的 Cloudflare TCP socket API 2026-06-12 16:18:32 +08:00
IT 22c7667f16 feat: 内联前端 HTML 到 Worker,单域名部署 2026-06-12 15:59:02 +08:00
IT ce4832b472 fix: 使用 SQLite 迁移支持免费计划 2026-06-12 15:52:22 +08:00
IT 4b2a3a429d fix: 构建命令包含前端依赖安装 2026-06-12 15:48:42 +08:00
IT d57b891c7d fix: 降级 wrangler 版本修复 npm 安装问题 2026-06-12 15:46:49 +08:00
IT 1ded79eb32 fix: 添加 pages_build_output_dir 配置 2026-06-12 15:16:10 +08:00
IT b95635bdd5 feat: 纯 Cloudflare 架构 Web SSH 工具
- Cloudflare Workers + Durable Objects
- 自实现 SSH 协议引擎(ECDH-P256 + AES-256-GCM)
- 前端:Vite + TypeScript + xterm.js
- 支持密码认证、终端渲染、窗口自适应
2026-06-12 15:09:29 +08:00
TanXin 8dc0d2b1cc Initial commit 2026-06-12 15:08:05 +08:00