SSH命令执行工具

一个通过SSH在远程服务器上执行终端命令的工具,支持密钥认证和配置文件管理。

  • by GrahamJenkins
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 grahamjenkins/ssh-utils-mcp

使用说明

ssh-utils

目的

ssh-utils 是一个模型上下文协议(MCP)服务器,允许您通过SSH在远程服务器上执行终端命令。它被设计为Roo Code或任何兼容MCP的客户端中的工具,可以从您的开发环境中安全地执行基于密钥的SSH命令。

运作原理

  • 服务器公开了一个名为 execute_ssh_command 通过MCP协议。
  • 调用时,它使用SSH连接到远程服务器并运行指定的命令。
  • 凭据和连接详细信息从配置文件加载(ssh-utils-servers.json),可以放置在:
    • 当前工作目录
    • 工作区根目录
    • 全局配置目录: ~/.config/ssh-utils/ssh-utils-servers.json
  • 如果配置中存在多个配置文件,默认情况下会使用第一个,或者您可以按名称指定一个配置文件。
  • 任何工具参数(如用户、主机或服务器)都会覆盖配置文件值。

配置文件

配置文件是一个名为的JSON文件 ssh-utils-servers.json 具有以下结构:

{
  "profiles": {
    "default": {
      "host": "example.com",
      "user": "bob",
      "port": 22,
      "privateKeyPath": "/home/bob/.ssh/id_ed25519"
    },
    "work": {
      "server": "workhost",
      "user": "alice"
    }
  }
}
  • host 或 server:SSH主机名或IP地址。
  • user:SSH用户名。
  • port:(可选)SSH端口(默认值:22)。
  • privateKeyPath:(可选)私钥文件的路径。

用法

  1. 放置您的 ssh-utils-servers.json 配置文件位于支持的位置之一。
  2. 使用 execute_ssh_command Roo Code或其他MCP客户端的工具,指定命令并(可选)覆盖任何连接参数。

安全

  • 出于安全原因,明确禁止基于密码的SSH身份验证。仅支持基于密钥的身份验证。