{"id":"7c9476ad-af90-4b15-abbb-8e5f297acb28","slug":"2native-ssh-mcp","kind":"mcp","name":"2native-ssh-mcp","summary":"Go 实现的 SSH MCP 服务器：AI 远程执行命令与文件传输，凭据留在本地，stdio / streamable HTTP。Native Go SSH MCP server for AI agents.","owner":"daidaiJ","repoUrl":"https://github.com/daidaiJ/2native-ssh-mcp","license":"ISC","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-08-22T05:45:29.000Z","addedAt":"2026-10-14T05:32:43.026Z","logoUrl":"https://avatars.githubusercontent.com/u/50935204?u=5475e1074e64f9aacd3f8fb94f760096b4c921c1&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra"],"tags":["go","remote-execution","sftp","ssh","ssh-mcp"],"runtime":"go","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-15T00:07:28.656Z","sample":false,"url":"https://conduits.dev/tools/2native-ssh-mcp","language":"Go","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"> [English](README.en.md)\n\n# 2native-ssh-mcp\n\n[![CI](https://github.com/daidaiJ/2native-ssh-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/daidaiJ/2native-ssh-mcp/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/daidaiJ/2native-ssh-mcp)](https://github.com/daidaiJ/2native-ssh-mcp/releases/latest)\n[![Go](https://img.shields.io/github/go-mod/go-version/daidaiJ/2native-ssh-mcp)](go.mod)\n[![License](https://img.shields.io/github/license/daidaiJ/2native-ssh-mcp)](LICENSE)\n[![SLSA](https://img.shields.io/badge/SLSA-provenance-brightgreen)](https://github.com/daidaiJ/2native-ssh-mcp/attestations)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed-555)](https://registry.modelcontextprotocol.io/v0.1/servers?search=2native-ssh-mcp)\n\n<p align=\"center\">\n  <img src=\"docs/images/hero.png\" alt=\"2native-ssh-mcp — Native Go SSH MCP, credentials stay local\" />\n</p>\n\n基于 SSH 的 MCP (Model Context Protocol) 服务器，Go 实现。让 AI 助手通过 MCP 协议远程执行命令、传输文件，SSH 凭据完全留在本地，不暴露给模型。\n\n> 本项目参考了 [classfang/ssh-mcp-server](https://github.com/classfang/ssh-mcp-server)（TypeScript 版）的设计与实现，在其基础上用 Go 重写，并将文件操作整合为**单个工具**、支持**进度通知**。感谢原作者的开源贡献。\n\n## 架构\n\n<p align=\"center\">\n  <img src=\"docs/images/architecture.png\" alt=\"架构：AI Agent 经 MCP 调用本机 2native-ssh-mcp，再经 SSH 到达远端主机\" />\n</p>\n\nAI 助手只看到四个 MCP 工具；本机进程负责 SSH，凭据不会进入模型上下文。\n\n## 📖 文档\n\n| 读者 | 文档 | 说明 |\n|---|---|---|\n| 🤖 AI Agent | [docs/AGENT_GUIDE.md](docs/AGENT_GUIDE.md) | 省 token 版：工具参数、配置、安全模式、部署命令速查 |\n| 👤 人类用户 | [docs/HUMAN_GUIDE.md](docs/HUMAN_GUIDE.md) | 易读版：安全配置、快速开始、工具说明、参数速查、发布流程 |\n| 🔍 特性详情 | [docs/FEATURES.md](docs/FEATURES.md) | 完整特性列表与已知限制（英文版 .en.md） |\n| 🛠 开发与发布 | [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) | 项目结构、构建测试、Release 与 MCP Registry 发布流程 |\n| 🔐 安全 | [SECURITY.md](SECURITY.md) | 威胁模型、审批闸门、审计落盘策略与分级加固建议 |\n\n各文档均为中文默认，同名 `.en.md` 为英文版。\n\n## ✨ 核心特性\n\n- **四个工具**：`list-servers` / `execute-command` / `session` / `file-transfer`；后台长任务是 `execute-command` 的 `background: true` 特殊模式，不是第五个工具\n- **远程执行**：懒连接 + keepalive、超时按远端 PID 杀进程组、默认不分配 PTY、后台任务断连存活可重附着\n- **输出处理**：ANSI 剥离、大输出落盘到本地（`.ssh-mcp-out/`），Agent 用 Read/Grep 查全文，不远程重跑\n- **文件传输**：原子落盘、去重、断点续传、目录递归、sha256 校验、进度通知\n- **破坏性命令审批（可选）**：`approvalMode: \"ask-destructive\"` 经 MCP elicitation 弹窗确认，内置分类器 + 用户扩展/豁免，灰色地带用户自定；客户端不支持时 fail-open\n- **防篡改审计日志**：每条命令追加进 SHA-256 哈希链（JSONL），事后篡改可定位到行（`audit-verify`）；落盘策略批量/写穿可调 → [审计日志](docs/HUMAN_GUIDE.md#审计日志防篡改命令记录哈希链)\n- **跳板机隧道**：`via`（OpenSSH ProxyJump）经跳板 `direct-tcpip` 连内网，各跳独立认证、不转发 agent，exec/shell/SFTP 行为与直连一致 → [跳板机](docs/HUMAN_GUIDE.md#跳板机viaopenssh-proxyjump)\n- **安全**：命令白/黑名单、路径白名单、凭据隔离、配置权限检查\n- **双传输**：stdio / streamable HTTP daemon（引用计数、健康检查、Windows 一键自启）\n- **认证兼容**：密码/私钥/ssh-agent/Pageant/键盘交互 2FA（挑战弹窗到 MCP 客户端，无人值守用环境变量兜底）、代理、算法协商（兼容老服务器）→ [认证方式](docs/HUMAN_GUIDE.md#认证方式)\n\n<p align=\"center\">\n  <img src=\"docs/images/isolation.png\" alt=\"凭据隔离：SSH 密钥与密码留在本机进程，不会到达模型\" />\n</p>\n\n完整特性列表见 [docs/FEATURES.md](docs/FEATURES.md)。\n\n## 🚀 快速上手\n\n```bash\n# 构建\ngo build -o 2native-ssh-mcp.exe .\n\n# stdio 模式（MCP 客户端拉起，凭据放 config.json 或环境变量）\n2native-ssh-mcp.exe --config-file config.json\n\n# HTTP 常驻服务\n2native-ssh-mcp.exe start --config-file config.json --http-addr 127.0.0.1:8338\n```\n\n详细配置与部署步骤见上方两份指南。\n\n## License\n\nISC License（与上游一致，保留上游版权声明，见 [LICENSE](LICENSE)）\n"}