SSH会话管理服务

用于持久化SSH会话管理的MCP服务器,支持交互式命令、后台进程和多个并发会话连接到单个目标主机。

  • by Brad-Edwards
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Brad-Edwards/ssh-control-mcp

使用说明

ssh-control-mcp 翻译为中文是“SSH控制-MCP(多通道协议/管理控制协议,具体含义根据上下文确定)”。不过,通常“MCP”在不同领域可能有不同的含义,这里假设它是一个特定于某个系统或应用的术语,因此直接保留了原样。在实际应用中,可能需要根据具体上下文来确定“MCP”的准确含义

用于持久SSH会话管理的MCP服务器。支持交互式命令、后台进程以及与单个目标主机的多个并发会话。

特点/特性

  • 具有工作目录和环境持久性的持久SSH会话
  • 交互式和后台会话类型
  • 通过原始模式支持TUI应用程序
  • 连接池和重用
  • 跨平台Shell支持(bash、sh、PowerShell、cmd)
  • 命令排队避免了竞态条件
  • 自动会话清理和超时管理

安装

npm install
npm run build

使用方法

import { SSHConnectionManager } from 'ssh-control-mcp';

const manager = new SSHConnectionManager();

// Create persistent session
const session = await manager.createSession(
  'session-id',
  'hostname',
  'username',
  'interactive',
  '/path/to/key',
  22,
  'normal',
  600000,
  'bash'
);

// Execute commands
const result = await session.executeCommand('ls -la', 30000);

// Close session
await manager.closeSession('session-id');

发展

npm run typecheck          # Type check
npm test                   # Run tests
npm run test:coverage      # Coverage report
npm run build              # Compile TypeScript

建筑

  • SSH连接管理器:连接池管理和会话生命周期管理
  • 持久会话:支持命令排队的独立Shell会话
  • ShellFormatter:跨平台的shell兼容层

会话使用基于分隔符的解析方法来可靠地捕获输出并提取退出代码。后台会话会对输出进行缓冲并设置限制,以防止内存耗尽。

安全

  • 仅基于密钥的SSH认证
  • 命令输入验证和清理
  • 会话隔离与访问控制
  • 对所有操作进行审计日志记录
  • 可配置的超时时间和资源限制