SSH主机管理工具

SSH MCP是一个本地运行的MCP服务器,用于管理和交互远程SSH主机,支持主机分组和跨多主机同时执行命令。

  • by blakerouse
  • Go
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 blakerouse/ssh-mcp

使用说明

SSH-MCP

SSH MCP是一个在您的主机上本地运行的MCP服务器,它提供了管理远程SSH主机和与远程SSH主机交互的能力。它支持将主机组织成组,并同时在多个主机上执行命令。

工具

主机管理

  • add_host -通过自动操作系统检测将新的Linux或Windows主机添加到SSH配置中。用户名和密码在连接字符串中是可选的-如果没有提供,将使用当前用户和SSH代理进行身份验证。
  • remove_host -按组和名称从SSH配置中删除主机。
  • get_groups -从SSH配置中检索所有组的列表。
  • 获取_帖子 -从SSH配置中检索主机列表。可以选择按组进行筛选。
  • 获取_信息 -检索Linux和Windows主机的缓存操作系统信息。您可以指定单个主机或整个组。
  • update_os_info -更新Linux和Windows主机的缓存操作系统信息。您可以指定单个主机或整个组。

命令执行

  • perform_命令 -SSH连接到远程计算机并执行命令。您可以指定单个主机或整个组。耗时超过30秒的命令会自动移至后台执行。使用background=true立即在后台运行。

命令管理

  • get_command_status -通过命令ID检索后台命令的状态和结果。如果没有提供ID,则返回最新的命令。
  • list_命令 -列出所有后台命令及其当前状态。可用于跟踪长时间运行的命令。
  • cancel_命令 -通过命令ID取消正在运行的后台命令。

特性

  • 与跨平台支持 -适用于Linux和Windows远程主机,具有自动操作系统检测功能
  • 基于集团的组织 -将主机分组以便于管理
  • 多种身份验证方法 -支持密码、SSH代理和SSH密钥文件(~/.SSH/id_rsa、id_ed25519等)
  • 安全主机验证 -使用~/.ssh/known_hosts进行主机密钥验证,并自动添加主机
  • 并发执行 -同时跨多个主机执行命令
  • 自动后台执行 -耗时超过30秒的命令会自动移动到后台,并返回命令ID以进行状态跟踪
  • 持久存储 -使用BadgerDB实现高效的本地存储

局限性

  • SSH代理支持仅限Unix(SSH_AUTH_SOCK)-密码和密钥文件身份验证在所有平台上都有效
  • 远程主机可以是Linux或Windows(自动操作系统检测)

如何设置

查看存储库:

$ git clone https://github.com/blakerouse/ssh-mcp

构建二进制文件:

$ go build .

更新Claude Desktop的MCP配置:

{
  "mcpServers": {
    "ssh": {
      "command": "<PATH_TO_BUILT_BINARY>"
    }
  }
}

重新启动克劳德桌面

如何使用

添加主机

将主机添加到组(支持多种格式- ssh:// 前缀是可选的):

add host to production group connecting with 10.0.1.5
add host named web01 to production group connecting with user@10.0.1.5:2222
add host to staging group connecting with user:pass@10.0.1.10

列出组和主机

列出所有组:

show me all groups

列出所有主机:

list all my hosts

列出特定组中的主机:

show me hosts in production group

获取操作系统信息

获取组中所有主机的操作系统信息:

show OS information for production group

获取特定主机的操作系统信息:

show OS information for production:web01 and production:web02

执行命令

在组中的所有主机上运行命令:

run "uptime" on production group
check disk space on staging group

在特定主机上运行命令:

run "systemctl status nginx" on production:web01 and production:web02

在30秒内完成的命令将立即返回结果。较长的命令会自动移至后台:

run "apt-get update && apt-get upgrade -y" on production group
# If this takes >30s, you'll get a command ID to check later

强制命令立即在后台运行:

run "apt-get update && apt-get upgrade -y" on production group in the background

管理后台命令

检查后台命令的状态:

show me the status of command abc-123-def
show me the status of the last command

列出所有后台命令:

list all background commands
show me all running commands

取消正在运行的命令:

cancel command abc-123-def
stop the running command abc-123-def

更新操作系统信息

更新缓存的操作系统信息:

update OS information for production group
refresh OS info for staging:db01

管理主机

删除主机:

remove production:web01
remove host web02 from staging group