@zhangfengshun/dsh-remote-ssh 2.3.6 → 2.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  本文件的版本号与 `package.json` 的 `version` 保持一致。每个版本对应一个 Cordis Package 快照(`pkg-N`)。
4
4
 
5
+ ## [2.3.8] — `/remote-ssh/api` CSRF 加固(合并 PR #4 + 服务端强制校验)
6
+ ### 安全
7
+ - **合并 PR #4**(感谢 @anupamme / OrbisAI Security):客户端 API 调用(`/remote-ssh/api/*`)统一携带 `x-requested-with: XMLHttpRequest` 头。
8
+ - **服务端强制校验该头**(PR 的服务端半边):`/remote-ssh/api/*` 前缀路由现在要求请求必带 `x-requested-with`,缺失返回 403 `csrf`——跨站攻击者无法在 no-cors POST 中携带非简单头(预检也会被拒),为不支持 `Sec-Fetch-*` 头的旧浏览器补上 CSRF 防线。现有 `Sec-Fetch-Site` 检查、localhost 限定与 DSH 网关认证全部保留;`fs.*`/`git.*`/上传/下载路由不受影响(其调用方为 better-sidebar 自带客户端,不带该头)。
9
+
10
+ ## [2.3.7] — Windows host 连接诊断增强:过滤 PQ 警告、ssh -v 诊断、跨平台测试探测
11
+ ### 修复
12
+ - **过滤 OpenSSH「后量子 KEX」警告横幅**:新版本客户端对非 PQ 加密的 stderr 警告(三行 `** WARNING…`)与认证成败无关,此前混入错误信息会误导用户以为是不支持加密算法;现在统一过滤(错误提示、一次性连接 stderr、持久会话关闭诊断)。
13
+ - **测试连接探测命令改为跨平台 `echo __DSH_OK__`**:旧命令尾部 `uname -a`/`pwd` 在 Windows host(cmd/PowerShell)上必然报错,导致**认证成功的 Windows host 也误报失败**。
14
+ - **认证失败自动带 ssh -v 诊断**:测试连接认证失败时重跑一次 `ssh -v` 握手,抽取关键诊断行(私钥加载 / 公钥提供 / 服务器拒绝方法 / 口令要求)附在错误信息里,用户一眼定位失败环节。
15
+ - **公钥失败提示覆盖 Windows 三大圈套**:① 私钥带口令 + 批处理模式无法交互输入(先 ssh-add 或去口令);② Windows host 且用户在 Administrators 组时公钥须写入 `C:\ProgramData\ssh\administrators_authorized_keys`;③ 用户名写法(`user` / `.\user` / `user@domain`)须与手动连接一致。
16
+
5
17
  ## [2.3.6] — settings 注册迁移至字符串命名空间,移除 legacy 导出依赖
6
18
  ### 变更
7
19
  - **不再从 `@deepseek-ai/dsh-settings` 导入 `settingsNamespace`**:该导出在 dsh-settings 中被标注为 legacy(仅为 alpha.2 之前的插件保留,未来版本可能移除)。`parseSettingsNamespace` 实为恒等函数(校验 `/^[a-z][a-z0-9-]*$/` 后原样返回),故 `register(NS, schema)` 与原 `register(settingsNamespace(NS), schema)` 存储键完全一致——零数据迁移,老用户配置无缝保留。