S

SSH-MCP服务器

一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。

os-automationsecurity-and-iam

808 查看 · 2026-07-07 更新

简介

一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。

简介

一种实现了模型上下文协议的服务器,它通过SSH启用安全的远程命令执行,并具有管理和使用SSH凭据的功能。

SSH MCP 服务器

这是一个使用模型上下文协议(MCP)实现的SSH服务器,它允许通过MCP协议进行安全的远程访问和执行。

功能

  • 使用MCP协议实现的SSH服务器
  • 集成SQLite数据库以实现数据持久化
  • 使用TypeScript实现,以确保类型安全并提供更好的开发体验

前提条件

  • Node.js(推荐v16或更高版本)
  • npm 或 yarn 包管理器
  • 开发时需要具备TypeScript知识

安装

  1. 克隆仓库:
git clone <repository-url> cd ssh-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

使用方法

配置

服务器使用一个SQLite数据库 (ssh.db) 来存储SSH凭证。当服务器启动时,该数据库文件将自动创建。

工具

服务器提供了以下工具:

ssh_exec

通过SSH执行命令。

输入参数:

  • host: 要连接到的主机。(必需)
  • command: 要执行的命令。(必需)
  • username: 用于SSH连接的用户名。(必需)
  • privateKeyPath: 私钥文件的路径。(必需)

示例用法:

{ "tool_name": "ssh_exec", "arguments": { "host": "example.com", "command": "ls -l", "username": "user", "privateKeyPath": "/path/to/private/key" } }

注意: privateKeyPath 必须是一个有效的私钥文件路径。

add_credential

添加一个新的SSH凭证。

输入参数:

  • name: 凭证的名称。(必需)
  • host: 要连接到的主机。(必需)
  • username: 用于SSH连接的用户名。(必需)
  • privateKeyPath: 私钥文件的路径。(必需)

示例用法:

{ "tool_name": "add_credential", "arguments": { "name": "my_credential", "host": "example.com", "username": "user", "privateKeyPath": "/path/to/private/key" } }

注意: privateKeyPath 必须是一个有效的私钥文件路径。

list_credentials

列出所有存储的SSH凭证。

输入参数:

示例用法:

{ "tool_name": "list_credentials", "arguments": {} }

remove_credential

移除一个已存储的SSH凭证。

输入参数:

  • name: 要移除的凭证名称。(必需)

示例用法:

{ "tool_name": "remove_credential", "arguments": { "name": "my_credential" } }

启动服务器

npm start

服务器将在配置的端口上运行(默认设置可以在源代码中修改)。

项目结构

  • src/ - 源代码目录
  • build/ - 编译后的JavaScript输出
  • node_modules/ - 项目依赖

依赖项

  • @modelcontextprotocol/sdk: MCP协议实现
  • sqlite3: SQLite数据库驱动
  • typescript: 支持TypeScript的开发依赖

开发

要对项目进行更改:

  1. src/目录下进行更改
  2. 重新构建项目:
npm run build
  1. 启动服务器以测试您的更改:
npm start

许可证

ISC

贡献

  1. 叉分仓库
  2. 创建您的功能分支
  3. 提交您的更改
  4. 推送到分支
  5. 创建新的拉取请求

工具列表

  • ssh_exec: Execute command over SSH using private key file path

  • add_credential: Add a new SSH credential with private key file path

  • list_credentials: List all stored SSH credentials

  • remove_credential: Remove a stored SSH credential

  • rsync_copy: Copy files/directories between local and remote server via rsync

来源