# remote-ssh-toolkit **Repository Path**: LXP-Never/remote-ssh-toolkit ## Basic Information - **Project Name**: remote-ssh-toolkit - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-17 - **Last Updated**: 2026-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 远程 SSH 工具箱 VSCode Remote-SSH 的文件操作太慢——下载、上传、删除、重命名都要等好几秒甚至几十秒。 本插件直接用 `rsync`/`scp`/`ssh` 替代,**速度快几倍到几十倍**。 ## 解决什么问题 VSCode Remote-SSH 自带的文件操作走虚拟文件系统(remote FS API),每个文件都要单线程逐块通过 SSH 往返。传 100 个文件就是 100 次往返,删除一个目录要等它逐个遍历。文件一多,慢到无法用。 本插件绕过这层,直接调系统命令: - 传输用 `rsync`/`scp`(一次连接传完) - 删除/重命名/移动/压缩/解压用 `ssh` 在服务器本地执行(瞬间完成) ## 怎么装 1. 下载 `.vsix` 文件 2. VSCode 里 `Ctrl+Shift+P` → `Extensions: Install from VSIX` → 选文件 3. 完成 无需配置。只要你的 VSCode 已经能通过 Remote-SSH 连上服务器,插件就能用。 ## 怎么用 **右键远程文件** → **快速传输** → 选操作: | 操作 | 说明 | |---|---| | 快速下载 | 传到本地,可多选 | | 快速删除 | 服务器本地 `rm -rf`,秒删 | | 快速重命名 | 服务器本地 `mv` | | 快速移动 | 移到指定目录 | | 快速压缩 | 打包成 `.tar.gz` | | 快速解压 | 解压 `.tar.gz`/`.zip`/`.tar`(右键压缩文件才显示) | **上传**走命令面板:`Ctrl+Shift+P` → 搜"快速上传" → 选本地文件 → 确认远程路径。 ## 为什么快 | 操作 | VSCode 原生 | 本插件 | |---|---|---| | 下载 100 文件 | 100 次 SSH 往返 | 1 次 rsync/scp | | 删除目录 | 逐个遍历 + 试回收站 | `rm -rf` 瞬间 | | 重命名 | remote FS 往返 | `mv` 瞬间 | ## 传输工具 优先 `rsync`(增量+续传),没有自动降级到 `scp`(Windows 10+ 自带,零依赖)。 ## 环境要求 - VSCode Remote - SSH 扩展 - 免密 SSH(已配好的免密登录) - `rsync` 可选(没有自动用 scp) - 远程服务器为 Linux(依赖 GNU `xargs -0` / `tar --null` / `mv -t`,各主流发行版标配) ## 安全与隐私 - **无宿主 shell 注入面**:所有 ssh/rsync/scp 调用通过参数数组(`spawn` argv)启动,不经过宿主机的 shell 解析;用户输入的路径、文件名不会被宿主机 shell 解释。 - **大文件列表走 stdin**:删除/移动/压缩/传输的文件清单通过管道以 NUL 分隔传给远程命令(`xargs -0` / `tar --null -T -` / `rsync --files-from=- --from0`),不拼进命令行——任意数量的文件都不会触碰系统命令行长度限制,特殊字符文件名也无需转义冒险。 - **无遥测**:本插件不收集、不上传任何数据。所有操作仅在「本机 ↔ 你的远程服务器」之间进行。 - **工作区信任**:插件仅在受信任的工作区中激活(依赖 VSCode Workspace Trust)。 - **免密要求**:所有操作使用 `BatchMode=yes`,永不弹出密码提示,不会挂起等待输入。 - **内置护栏**:拒绝删除系统级危险路径(`/`、`/etc`、`/usr` 等);所有操作有超时与可取消的进度通知;每一步命令与错误都写入「快速传输」输出面板。 ## 从源码构建 ```bash git clone https://gitee.com/LXP-Never/remote-ssh-toolkit.git cd remote-ssh-toolkit npm install npm run compile # 编译 TypeScript npm run package # 打包 .vsix(需要 @vscode/vsce) ``` ## 贡献 欢迎 Issue 和 PR。改动请保持:不引入宿主 shell 拼接用户输入、不引入遥测、远程命令保持 POSIX 兼容。 ## License [MIT](https://gitee.com/LXP-Never/remote-ssh-toolkit/blob/master/LICENSE) © neverling