logo NodeSeekbeta

【开源】mcp-ssh-go:基于GO专为 AI Agent 打造的轻量、安全优先 SSH MCP 服务端

https://github.com/agczsz/mcp-ssh-go

市面上很多 SSH MCP 服务端动辄开放完整的交互式 PTY 终端、sudo/su 提权和端口转发,权限面过大且极难审计。AI Agent 一旦误操作或遭受 Prompt 注入,极易演变为灾难。

mcp-ssh-go 采用了克制的反向设计思路:严格限制为 8 个离散、可审计的非交互式操作,无交互 Shell、无提权通道、无端口隧道,以单一静态二进制文件运行,杜绝命令逃逸风险。

1aiGBdT99HHyP8atJdmgQK9TsSw6qblE.webp

UTRVzMvcqksuAXtJ1U7PFm4YYkDVImBZ.webp

最大亮点

  • SSH-AGENT支持:几乎市面上所有SSH-MCP都不支持SSH-AGNET,SSH-AGENT把密钥保存在密码库内,使用时载入内存,任何软件无法直接读取密钥,但是却能通过它进行间接认证,十分安全

核心特性

  • 单静态二进制文件:基于 Go 构建(CGO_ENABLED=0),无 Node.js、Python 或环境依赖,有效防范安装阶段的供应链投毒风险。
  • 最小权限攻击面:仅提供 8 个原子化工具,每次调用均为独立、结果可控的受限操作。
  • 智能防爆上下文(Output Cap):防止 Agent 执行 cat large.log 撑爆模型上下文。输出超出阈值时(默认 128 KB),自动保留 前 75% 配置/头信息 + 后 25% 结尾摘要,并内嵌截断提示。
  • 安全的凭据管理:密码与密钥密码仅保存在系统原生 Keyring(操作系统密钥环)中;支持 ssh-agent、ProxyJump 跳板机与 SOCKS5 代理。
  • 内置轻量 Web GUI:提供本地可视化管理面板(默认 :2224),与 MCP 服务端(:2223/mcp,基于 Streamable HTTP + Bearer Token 鉴权)共享配置。

支持的 8 个工具

工具名 功能说明
ssh_list_servers 获取本地配置的服务器列表(不泄露凭据与密钥路径)
ssh_connect 打开会话并分配 session_id(支持配置库或 ~/.ssh/config)
ssh_disconnect 主动关闭并销毁指定会话
ssh_exec 在已有会话中运行非交互命令(返回 stdout/stderr/退出码)
ssh_quick_exec 无状态单次执行:连接 -> 运行一条命令 -> 自动断开
ssh_list_dir 通过 SFTP 读取远程目录(上限 2000 项防溢出)
ssh_upload 通过 SFTP 上传本地文件至远端
ssh_download 通过 SFTP 下载远端文件至本地

快速开始

1. 编译与运行
# 静态编译
CGO_ENABLED=0 go build -o mcp-ssh-go .

# 启动服务(设置鉴权 Token)
export SSH_MCP_AUTH_TOKEN="your-secure-token-here"
./mcp-ssh-go

  • MCP 端点:[http://127.0.0.1:2223/mcp](http://127.0.0.1:2223/mcp)
  • 管理面板:[http://127.0.0.1:2224](http://127.0.0.1:2224)(如需禁用,传入 SSH_MCP_GUI=0)
2. 配置 MCP 客户端(以 Claude Desktop 为例)

编辑客户端配置文件(如 claude_desktop_config.json):

{
  "mcpServers": {
    "ssh": {
      "type": "http",
      "url": "http://127.0.0.1:2223/mcp",
      "headers": {
        "Authorization": "Bearer your-secure-token-here"
      }
    }
  }
}


你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72296位seeker

🎉欢迎新用户🎉