mcpField
S
Ssh Mcp Pro

Ssh Mcp Pro

本地服务
github.com/oaslananka云与基础设施21 周前更新

关于 Ssh Mcp Pro

Ssh Mcp Pro 是用于策略管控 SSH 操作和基础设施工作流的 TypeScript MCP 服务,面向需要受控远程访问的团队。它通过可配置的安全策略和工具配置,支持本地及远程使用。

主要功能

  1. 01建立和管理 SSH 会话
  2. 02执行受策略限制的远程命令
  3. 03检查主机与 SSH 策略
  4. 04管理文件并传输制品
  5. 05创建隧道并确保软件包或服务状态
  6. 06配置工具配置与访问控制

适用场景

  1. 01维护前检查远程主机
  2. 02在基础设施上运行获准命令
  3. 03按路径和大小限制传输文件
  4. 04远程开放受限连接器配置

MCP 相关

它向 MCP 客户端提供 SSH、进程、文件系统、传输、隧道和系统相关工具、资源及提示词。客户端可通过 stdio 或 Streamable HTTP 连接,策略和配置文件控制可用操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ssh-mcp-pro": {
"command": "npx",
"args": [
"-y",
"ssh-mcp-pro"
],
"env": {
"SSH_MCP_HTTP_ALLOWED_ORIGINS": "<SSH_MCP_HTTP_ALLOWED_ORIGINS>",
"SSH_MCP_HTTP_BEARER_TOKEN_FILE": "<SSH_MCP_HTTP_BEARER_TOKEN_FILE>",
"SSH_MCP_HTTP_PUBLIC_URL": "<SSH_MCP_HTTP_PUBLIC_URL>",
"SSH_MCP_HTTP_TRUST_PROXY": "<SSH_MCP_HTTP_TRUST_PROXY>"
}
}
}
}
启动命令npx -y ssh-mcp-pro
需要配置的环境变量
SSH_MCP_HTTP_ALLOWED_ORIGINSComma-separated allowed browser origins for Streamable HTTP clients. Keep this restricted when not using loopback.
SSH_MCP_HTTP_BEARER_TOKEN_FILE密钥Path to a bearer token file. Required for non-loopback HTTP bindings.
SSH_MCP_HTTP_PUBLIC_URLStable HTTPS public /mcp URL. Required for non-loopback HTTP bindings.
SSH_MCP_HTTP_TRUST_PROXYSet to true only behind a trusted reverse proxy that controls forwarded headers.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmssh-mcp-pro1.2.3

工具

46

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

ssh-mcp-pro

npm 版本 npm 下载量 许可证 CI API 文档 CodSpeed

请我喝杯咖啡

ssh-mcp-pro 是一个用于 SSH 自动化的安全模型上下文协议(MCP)服务。它让支持 MCP 的客户端能够通过受策略控制的工具打开 SSH 会话、检查主机、运行受保护的命令、管理文件、传输制品、创建隧道,以及执行幂等的软件包或服务操作。

前置条件

  • Node.js >=22.22.2 或 >=24.15.0 或 >=26.3.0
  • pnpm >=11.0.9
  • 目标主机的 SSH 访问权限
  • Docker,仅用于本地集成测试和容器映像构建

安装

使用 pnpm 全局安装:

pnpm add --global ssh-mcp-pro
ssh-mcp-pro --version

无需全局安装即可运行:

npx ssh-mcp-pro

仅使用 pnpm 的环境请使用:

pnpm dlx ssh-mcp-pro

发布版本标签对应的容器映像托管在 GitHub Container Registry:

docker run --rm ghcr.io/oaslananka/ssh-mcp-pro:1.0.0 --version

映像适用于 linux/amd64 和 linux/arm64,并带有精确的 semver 和 Git 标签别名。生产部署应优先使用发布工作流记录的、固定到摘要的 引用。有关标签策略、固定到摘要的示例和注册表验证步骤,请参阅 Docker 使用说明。

快速入门

通用 stdio MCP 配置:

{
  "name": "ssh-mcp-pro",
  "command": "ssh-mcp-pro",
  "type": "stdio"
}

VS Code 设置样式:

{
  "mcp.servers": {
    "ssh-mcp-pro": {
      "type": "stdio",
      "command": "ssh-mcp-pro",
      "args": []
    }
  }
}

Claude Desktop 样式:

{
  "mcpServers": {
    "ssh-mcp-pro": {
      "command": "ssh-mcp-pro",
      "args": []
    }
  }
}

注册后,请先使用严格的主机密钥策略进行发现:

List configured SSH hosts, open a session to bastion.example.com as deploy with hostKeyPolicy=strict, then run os_detect.

使用方法

通过 stdio 从 MCP 客户端使用 ssh-mcp-pro,或运行 HTTP 传输以使用适合远程环境的连接器配置文件。请从只读发现工具开始,检查当前策略,并在运行远程命令前创建明确的会话:

List configured SSH hosts, explain the active SSH policy, connect to the selected host, then report its operating system and disk usage.

其他工作流请参阅 examples/README.md,针对特定客户端的设置请参阅 INSTALL.md。

配置

下方列出了 src/config.ts 解析的所有 SSH_MCP_* 环境变量。以逗号分隔的设置也接受以换行符分隔的值。

变量默认值用途
SSH_MCP_MAX_SESSIONS20最大并发 SSH 会话数。
SSH_MCP_SESSION_TTL900000会话生存时间,单位为毫秒。
SSH_MCP_COMMAND_TIMEOUT30000远程命令的默认超时时间,单位为毫秒。
SSH_MCP_MAX_COMMAND_OUTPUT_BYTES1048576每条命令结果缓冲的 stdout/stderr 最大字节数。
SSH_MCP_MAX_STREAM_CHUNKS4096最多保留的流式数据块数。
SSH_MCP_MAX_FILE_SIZE10485760面向文本的文件读取最多返回的字节数。
SSH_MCP_MAX_FILE_WRITE_BYTES10485760缓冲前接受的最大写入负载字节数。
SSH_MCP_MAX_TRANSFER_BYTES52428800上传或下载的最大传输字节数。
SSH_MCP_DEBUGfalse启用面向调试的配置行为。
SSH_MCP_RATE_LIMITtrue启用全局 MCP 请求速率限制器。
SSH_MCP_RATE_LIMIT_MAX100每个速率限制窗口内的最大请求数。
SSH_MCP_RATE_LIMIT_PER_SESSIONtrue当工具参数包含 sessionId 时,启用按会话限制 MCP 请求速率。
SSH_MCP_RATE_LIMIT_PER_SESSION_MAX50每个速率限制窗口内,每个 SSH 会话的最大请求数。
SSH_MCP_RATE_LIMIT_PER_SESSION_WINDOW_MS60000按会话速率限制窗口,单位为毫秒。
SSH_MCP_RATE_LIMIT_WINDOW_MS60000速率限制窗口,单位为毫秒。
SSH_MCP_STRICT_HOST_KEY未设置用于在严格与不安全主机密钥检查之间切换的旧版布尔别名。
SSH_MCP_HOST_KEY_POLICYstrict主机密钥模式:strict、accept-new 或 insecure。
SSH_MCP_KNOWN_HOSTS_PATH~/.ssh/known_hosts用于严格主机密钥验证的已知主机文件。
SSH_MCP_ALLOW_ROOT_LOGINfalse允许以 root 身份登录 SSH,并同步到策略中。
SSH_MCP_ALLOWED_CIPHERS空可选的 SSH 加密算法允许列表。
SSH_MCP_POLICY_FILE未设置包含部分策略覆盖项的 JSON 文件。
SSH_MCP_POLICY_MODEenforce策略决策模式:enforce 或 explain。
SSH_MCP_ALLOW_RAW_SUDOfalse允许原始 proc_sudo;建议使用 ensure_* 工具。
SSH_MCP_ALLOW_DESTRUCTIVE_COMMANDSfalse允许符合破坏性命令策略的命令。
SSH_MCP_ALLOW_DESTRUCTIVE_FSfalse允许破坏性文件系统操作,例如 fs_rmrf。
SSH_MCP_ALLOWED_HOSTS空用于策略和远程连接器安全检查的主机允许列表。
SSH_MCP_COMMAND_ALLOW空命令允许模式。
SSH_MCP_COMMAND_DENY空命令拒绝模式。
SSH_MCP_PATH_ALLOW_PREFIXES/tmp,/var/tmp,/home,/Users文件系统策略允许的远程路径前缀。
SSH_MCP_PATH_DENY_PREFIXES/etc/sudoers,/etc/shadow,/etc/passwd,/boot,/dev,/proc文件系统策略拒绝的远程路径前缀。
SSH_MCP_LOCAL_PATH_ALLOW_PREFIXESOS 临时目录传输操作允许使用的本地路径。
SSH_MCP_LOCAL_PATH_DENY_PREFIXES空传输操作拒绝使用的本地路径。
SSH_MCP_TUNNEL_ALLOW_BIND_HOSTS127.0.0.1,localhost,::1隧道允许绑定的本地主机。
SSH_MCP_TUNNEL_DENY_BIND_HOSTS0.0.0.0,::隧道拒绝绑定的本地主机。
SSH_MCP_TUNNEL_ALLOW_REMOTE_HOSTS空可选的远程隧道目标主机允许列表。
SSH_MCP_TUNNEL_DENY_REMOTE_HOSTS空可选的远程隧道目标主机拒绝列表。
SSH_MCP_TUNNEL_ALLOW_PORTS空可选的隧道端口允许列表。
SSH_MCP_TUNNEL_DENY_PORTS空可选的隧道端口拒绝列表。
SSH_MCP_HTTP_HOST127.0.0.1Streamable HTTP 绑定主机。
SSH_MCP_HTTP_PORT3000Streamable HTTP 绑定端口。
SSH_MCP_HTTP_ALLOWED_ORIGINShttp://127.0.0.1,http://localhostHTTP 客户端允许的浏览器来源。
SSH_MCP_HTTP_BEARER_TOKEN_FILE未设置HTTP 传输使用的 Bearer 令牌文件。非环回 Bearer 部署必须设置。
SSH_MCP_ENABLE_LEGACY_SSEfalse启用旧版 SSE 兼容性。
SSH_MCP_HTTP_MAX_REQUEST_BODY_BYTES1048576HTTP 请求正文的最大大小。
SSH_MCP_HTTP_MAX_SESSIONS20活跃 Streamable HTTP MCP 会话的最大数量。会先清理过期会话;如果容量仍已满,则逐出最久未活动的会话,避免客户端弃用会话导致持续出现 502 错误。ChatGPT/Cloudflare 生产部署请使用 100。
SSH_MCP_HTTP_SESSION_IDLE_TTL_MS900000HTTP MCP 会话空闲超时时间,单位为毫秒。对于客户端可能不发送 DELETE 而弃用会话的 ChatGPT/Cloudflare 生产部署,请使用 300000。
SSH_MCP_HTTP_PUBLIC_URL未设置用于受保护资源元数据的稳定公共 HTTPS MCP URL。
SSH_MCP_HTTP_TRUST_PROXYfalse信任反向代理转发的标头。
SSH_MCP_TOOL_PROFILEfull当前启用的工具公开配置。
SSH_MCP_CONNECTOR_PROFILEfullSSH_MCP_TOOL_PROFILE 的别名。
SSH_MCP_CONNECTOR_CREDENTIAL_PROVIDERnone凭据提供方:none、agent 或 command。
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND未设置当提供方为 command 时使用的外部凭据命令。
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND_ARGS空传递给外部凭据命令的参数。
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND_TIMEOUT_MS5000凭据命令的超时时间,单位为毫秒。
SSH_MCP_CONNECTOR_DEFAULT_USERNAME未设置连接器代理流程的默认用户名。
SSH_MCP_HTTP_AUTH_MODEbearerHTTP 身份验证模式:bearer 或 oauth。
SSH_MCP_OAUTH_ISSUER未设置预期的 OAuth 签发者。
SSH_MCP_OAUTH_AUDIENCE未设置预期的 OAuth 受众。
SSH_MCP_OAUTH_JWKS_URL未设置OAuth JWKS URL。
SSH_MCP_OAUTH_RESOURCE未设置OAuth 受保护资源标识符。
SSH_MCP_OAUTH_REQUIRED_SCOPESssh-mcp-pro.read必需的 OAuth 作用域。
SSH_MCP_OAUTH_ALLOWED_ALGORITHMS未设置可选的逗号分隔 JWT 算法允许列表,例如 RS256,ES256。未设置时,将使用内置 OAuth 验证器的默认值。
SSH_MCP_REMOTE_AGENT_MCP_PASSTHROUGH未设置设置为 1、true、yes 或 on 时,允许 /mcp 请求绕过远程控制平面,直接到达 Streamable HTTP MCP 处理器。仅用于连接器路由迁移。
解析器还接受非 SSH_MCP_* 兼容别名 PORT、KNOWN_HOSTS_PATH 和 STRICT_HOST_KEY_CHECKING。

工具配置

full 会公开所有已注册的工具、资源和提示词。其他配置均使用明确的逐配置允许列表。chatgpt 和 claude 目前公开与 remote-safe 相同的基础连接器工具,并预留了空的客户端专属扩展集,供未来添加内容。

配置公开的工具公开的资源公开的提示词
full所有 SSH、进程、文件系统、传输、确保、隧道、连接器和系统工具。所有运行时资源。所有提示词。
remote-safeconnector_status、ssh_hosts_list、ssh_policy_explain、ssh_host_inspect、ssh_mutation_plan。ssh-mcp-pro://capabilities/support-matrix。inspect-host-capabilities、plan-mutation。
chatgpt基础远程连接器工具,以及空的 ChatGPT 扩展集。与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。
claude基础远程连接器工具,以及空的 Claude 扩展集。与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。
remote-readonly与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。
remote-broker与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。与 remote-safe 相同的远程连接器子集。

SSH_MCP_CHATGPT_EXTRA_TOOLS 和 SSH_MCP_CLAUDE_EXTRA_TOOLS 可在仅限环回的开发环境中扩展其配置。非环回 HTTP 启动时,会根据规范的远程安全允许列表验证完整解析后的工具集,并拒绝未知工具、会话工具、传输工具、文件系统修改工具、进程工具、sudo 工具、服务修改工具或隧道工具。启动错误仅列出被拒绝的工具名称。在本地添加扩展,并不意味着该工具获准公开给公共连接器使用。

安全默认设置

ssh-mcp-pro 默认严格验证 SSH 主机密钥、拒绝 root 登录、拒绝直接使用 sudo,并在策略未允许时阻止破坏性命令和文件系统操作。此外,除非已配置身份验证、来源、公共 HTTPS URL、严格的主机密钥验证、远程安全工具配置和主机允许列表,否则它会拒绝非环回 HTTP 启动。有关漏洞报告,请参阅 SECURITY.md;有关这些默认设置背后的设计理由,请参阅 SECURITY_DECISIONS.md。

更多文档

项目健康状况与治理

参与贡献

有关环境搭建、质量门槛、提交规则和拉取请求要求,请参阅 CONTRIBUTING.md。参与者须遵守行为准则。

许可证

ssh-mcp-pro 采用 MIT 许可证。

Agent 插件和运行时配置

此仓库负责维护 ssh-mcp-pro 的产品级 Agent 插件、MCP 运行时配置和产品专属技能。中央 agent-tools 仓库应收录此插件,但清单和工作流说明保存在此处,以便与实际的 MCP 服务包保持同步。

文件用途
.claude-plugin/plugin.json符合 Claude Code 要求的产品插件清单。
.mcp.jsonClaude Code 项目本地 MCP 服务配置。
.codex/config.example.tomlCodex CLI MCP 配置示例。
.vscode/mcp.example.jsonVS Code / GitHub Copilot 工作区 MCP 配置示例。
opencode.example.jsoncOpenCode 项目 MCP 配置示例。
.opencode/skills/OpenCode 原生镜像技能定义。
docs/agent-runtime-config.mdAgent 运行时设置和验证说明。

在本地验证插件打包:

claude plugin validate .

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。