使用说明
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