首页 / 资讯中心 / 文章详情

如何快速掌握双向文件传输与读写:ssh-mcp-server的upload、download、read-file、write-file工具全解析

如何快速掌握双向文件传输与读写:ssh-mcp-server的upload、download、read-file、write-file工具全解析 ★ FEATURED ARTICLE
【免费下载链接】ssh-mcp-server基于 SSH 的 MCP 服务 ‍♀️。已被MCP官方收录 。 SSH MCP Server ‍♀️. It has been included in the community MCP repository .项目地址https://gitcode.com/gh_mirrors/ss/ssh-mcp-server点击查看免费下载ssh-mcp-server 是一款已被 MCP 官方收录的基于 SSH 的 MCP 服务器让 AI 助手通过标准 MCP 协议安全地操作远程服务器。除了执行命令它还提供了一套完整的双向文件传输与读写能力upload、download、read-file、write-file四个工具让你无需登录服务器就能上传下载文件、分页读取远程日志、直接写入文本内容。本文带你完整解析这四个工具的使用方式、参数细节与安全机制。 为什么需要双向文件传输传统 SSH 场景下传文件要靠scp看日志要敲cat/tail写文件还得小心 shell 引号转义。而在 MCP 工作流里AI 助手需要把这些操作变成一次工具调用部署把本地代码、配置上传到服务器upload排查把服务器上的日志、数据下载到本地分析download巡检分页查看远程日志只看需要的部分read-file修复直接改写远程配置文件不经过 shellwrite-file四个工具全部基于SFTP 协议实现而非在 shell 里执行命令因此传输稳定、内容不会被 shell 解析天然规避了引号、$、反引号等转义问题。工具定义分别位于 src/tools/upload.ts、src/tools/download.ts 和 src/tools/file-io.ts核心传输逻辑在 src/services/ssh-connection-manager.ts。 四个工具一览表工具用途关键参数典型场景upload本地文件/目录 → 远程localPath、remotePath、connectionName部署代码、上传配置文件download远程文件/目录 → 本地remotePath、localPath、connectionName拉取日志、备份数据read-file分页读取远程文本文件remotePath、offset、length查看日志、巡检配置write-file写入/追加远程文本文件remotePath、content、append、mode修改配置、写入报告所有工具都支持可选的connectionName参数——当你配置了多台 SSH 连接时用它指定目标服务器不指定则使用默认连接。⬆️ upload把本地文件或整个目录传上服务器upload将本地文件或整个目录上传到远程指定位置参数很简洁localPath本地路径文件或目录remotePath远端路径必须是POSIX 绝对路径如/home/user/app.txt或 Windows 盘符绝对路径如C:/Users/file.txtconnectionName可选指定多连接场景下的目标目录递归传输与性能细节本地路径是目录时会递归传输远端目录不存在会自动创建符号链接等非普通文件会被跳过并在结果中提示跳过了多少个单次最多传输2000 个文件超过会提示先tar打包再上传大文件超过 256KB自动启用并发快速传输64 路并发、32KB 分块在高延迟链路上也能保持不错的吞吐量成功时会返回File uploaded successfully目录则返回类似Directory uploaded: 12 files to /var/www的汇总信息。⬇️ download把服务器上的文件安全拉回本地download与upload完全对称方向反过来remotePath远端文件或目录绝对路径localPath本地目标路径connectionName可选值得一提的是它的原子写入机制下载时文件先写入带tmp后缀的临时文件完整落盘后才重命名为目标路径。这样即使传输中途失败本地也不会留下一个半截文件临时文件也会被自动清理。目录下载同样支持递归、跳过符号链接、2000 个文件上限。 read-file像 tail -n 一样分页读取远程文本文件直接在 shell 里cat一个大日志文件输出很容易撑爆上下文。read-file通过 SFTP 按字节范围读取天然支持分页remotePath远端文件路径offset起始字节偏移默认0length本次最多读取的字节数默认6553664KBconnectionName可选返回值带一个清晰的头部例如[bytes] 0-65536 of 1048576 (next offset 65536)——告诉你本次读了哪段、文件总大小、以及下一段应该从哪个 offset 继续AI 助手可以据此自动翻页。两个贴心设计拒绝二进制文件检测到 NUL 字节或大量无效 UTF-8 时会明确报错提示改用download避免把乱码塞进对话目录友好提示路径是目录时会提示用execute-command执行ls来列目录实现逻辑可见 src/services/ssh-connection-manager.ts。✍️ write-file不经过 shell 写文件告别引号转义噩梦用echo或 heredoc 往服务器写内容遇到引号、$、反引号、多行文本就是一场噩梦。write-file直接把文本内容通过 SFTP 写入远程文件内容完全不经过 shellremotePath远端文件路径content要写入的 UTF-8 文本多行、特殊字符都无需转义append可选布尔值true时追加而非覆盖mode可选新建文件时的权限位数字表示如420对应0644成功返回类似Wrote 256 bytes to /etc/app/conf.ini或Appended 128 bytes to /var/log/agent.log的确认信息。写配置、追加日志、生成报告一次调用就完成。️ 安全机制路径白名单是生产环境的必修课文件类工具的权限边界由两层配置控制配置项作用默认行为allowedLocalPaths--allowed-local-paths限制upload/download可访问的本地路径仅允许当前工作目录allowedRemotePaths--allowed-remote-paths限制 SFTP 可访问的远端路径白名单未配置时任意路径都允许启动会打印警告本地防穿越所有本地路径会经过realpath解析后再做白名单校验软链接指向白名单外的目标也会被拦截见 src/services/ssh-connection-manager.ts远端路径规范化远端路径只接受 POSIX 绝对路径或 Windows 盘符绝对路径相对路径、UNC 路径、空字节一律拒绝规范化逻辑在 src/utils/remote-path.ts强烈建议在mcp.json或连接配置中显式设置allowedRemotePaths白名单避免 AI 被 prompt 注入后误读写~/.ssh/authorized_keys、/etc/sshd_config这类敏感文件。另外注意shell堡垒机模式下 SFTP 被禁用upload/download不可用read-file/write-file同理——它们依赖的 SFTP 通道在堡垒机场景下无法建立。 四个工具怎么选传文件有二进制、体积大、成目录→upload/download看内容文本、日志、配置可能要翻页→read-file改内容文本写入、追加含特殊字符→write-file混合场景先用read-file读原配置改好后再write-file覆盖写回 小结ssh-mcp-server 的upload、download、read-file、write-file四个工具以 SFTP 为底座补齐了 AI 助手操作远程服务器的文件侧能力双向传输支持目录递归与大文件加速读取支持字节级分页并拒绝二进制写入彻底绕开 shell 转义。配合allowedLocalPaths/allowedRemotePaths双白名单既能让 AI 高效干活又把权限牢牢锁在你划定的围栏里。配置好白名单后放心把文件操作交给 AI 吧。赞分享【免费下载链接】ssh-mcp-server基于 SSH 的 MCP 服务 ‍♀️。已被MCP官方收录 。 SSH MCP Server ‍♀️. It has been included in the community MCP repository .项目地址https://gitcode.com/gh_mirrors/ss/ssh-mcp-server点击查看免费下载相关推荐构建安全的PHP命令行应用ShellWrap最佳实践指南构建安全的PHP命令行应用ShellWrap最佳实践指南 在PHP开发中安全地执行命令行操作一直是个挑战。ShellWrap作为一个优雅的PHP命令行包装库开发工具ChatGPT Exporter API详解从数据获取到格式转换的全流程分析ChatGPT Exporter API详解从数据获取到格式转换的全流程分析 ChatGPT Exporter是一款功能强大的开源工具专为ChatGPT用户大模型如何快速上手urlcat10分钟学会构建完美URL如何快速上手urlcat10分钟学会构建完美URL urlcat是一个轻量级的JavaScript URL构建库它能帮助开发者轻松创建正确的URL避免常见上一篇hikptool架构设计解析模块化诊断工具的实现原理下一篇一文掌握openEuler/mcs服务管理RTOS生命周期与状态监控技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站