返回 MCP 目录
public公开dns本地运行

ssh-mcp-server-k9p

一个基于MCP协议的SSH服务器实现,提供安全的远程访问和执行功能,包含SQLite数据库集成和TypeScript类型支持。

article

README

🚀 SSH MCP 服务器

SSH MCP 服务器是一个实现了 Model Context Protocol (MCP) 协议的 SSH 服务器,它能提供安全的远程访问和执行功能,通过 MCP 协议支持远程 SSH 连接,为用户带来便捷、安全的远程操作体验。

🚀 快速开始

SSH MCP 服务器通过 MCP 协议实现远程 SSH 连接,为用户提供安全的远程访问和执行功能。下面为你介绍使用它的基本步骤。

✨ 主要特性

  • 基于 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/ - 项目依赖项

依赖

  • ssh:用于 SSH 连接的库。
  • child_process:用于执行子进程(如 SSH 命令)。
  • fs:用于文件系统操作(读取和写入凭据)。

开发

要进行代码修改,请按照以下步骤操作:

  1. 修改源代码文件(在 src/ 目录中)。
  2. 使用 npm 脚本构建项目:
npm run build
  1. 测试更改后的功能。

要贡献到项目,请 fork 仓库并在您的分支上进行开发。完成后提交一个 Pull Request。

贡献指南

要为该项目做贡献,请按照以下步骤操作:

  1. Fork 仓库。
  2. 在您的本地副本中创建一个新的功能分支:
git checkout -b feature/your-feature-name
  1. 提交您的更改。
  2. 推送到远程仓库并提交 Pull Request。

我们欢迎所有有用的贡献!

🔧 技术细节

本项目使用 TypeScript 进行开发,基于 MCP 协议实现 SSH 服务器。通过集成 SQLite 数据库,实现了数据的持久化存储。在运行过程中,使用 ssh 库进行 SSH 连接,child_process 执行子进程(如 SSH 命令),fs 进行文件系统操作(读取和写入凭据)。这些技术的结合,使得项目具备了安全、高效的远程访问和执行功能。

📄 许可证

[许可证信息]

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端