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