SSH远程管理工具

通过SSH为AI编程代理提供远程机器全访问的服务器工具,支持多服务器连接、远程文件操作和目录同步。

  • by Perceptron-Studios
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Perceptron-Studios/ssh-hub

使用说明

ssh集线器

MCP服务器,允许AI编码代理通过SSH完全访问远程机器。同时连接到多个服务器,并使用远程文件操作、shell命令和目录同步——所有这些都是通过MCP工具界面完成的。

先决条件

安装

cargo install --git https://github.com/Perceptron-Studios/ssh-hub.git

升级

ssh-hub upgrade

快速开始

# 1. Add a remote server
ssh-hub add <SERVER_ALIAS> user@host

# 2. Register as MCP in your project
ssh-hub mcp-install /path/to/project

连接字符串格式

user@host                  # defaults to port 22, path ~
user@host:/path            # explicit path
user@host:2222             # custom port, path ~
user@host:2222:/path       # custom port and path

身份文件

对于受密码保护的密钥,请通过 -i 在...期间 add --ssh-hub会将密钥加载到您的ssh代理中:

注意:如果访问私钥需要短语,此命令将通过ssh add请求密码并安全存储。

ssh-hub add <SERVER_ALIAS> user@host -i ~/.ssh/my_key

CLI命令

命令 描述
ssh-hub 在stdio上启动MCP服务器(由MCP客户端使用)
ssh-hub list 列出已配置的服务器
ssh-hub add <name> <connection> 添加服务器(测试连接,然后保存)
ssh-hub remove <name> 从配置中删除服务器
ssh-hub update <name> 更新服务器元数据和连接设置
ssh-hub mcp-install [directory] 在项目中将ssh-hub注册为MCP服务器
ssh-hub upgrade 升级至最新版本

选项: -v 详细日志记录, -i <path> 身份文件, -p <port> 端口覆盖。

mcp-install 旗帜: --claude (.mcp.json 仅), --codex (.codex/config.toml 仅)。默认为两者。

认证

所有身份验证都是基于SSH密钥的。不存储或传输密码。按键按以下顺序尝试:

  1. 身份文件 --指定密钥 -i 在...期间 add (最高信号)
  2. SSH代理 --通过加载密钥 ssh-add,签名委托给 ssh-agent (最多10个键)
  3. 默认密钥 — ~/.ssh/id_ed25519, id_rsa, id_ecdsa

RSA密钥会自动与SHA-256/SHA-512签名协商(现代服务器拒绝传统的SHA-1)。

MCP工具

所有工具在首次使用时都会自动连接到配置的服务器,不需要手动连接步骤。每个工具都需要一个 server 引用已配置服务器名称的参数。

发现

  • list_servers --显示具有实时可达性探测的已配置服务器(具有延迟的TCP ping)

远程操作

  • remote_bash --执行shell命令(可选超时和后台模式)
  • remote_read --读取文件内容(大文件有偏移/限制)
  • remote_write --将内容写入文件
  • remote_edit --使用字符串替换编辑文件
  • remote_glob --查找与glob模式匹配的文件

同步

  • sync_push --将本地文件或目录推送到远程(目录的tar流)
  • sync_pull --将远程文件或目录拉到本地(目录的tar流)

配置

服务器配置存储在 ~/.config/ssh-hub/servers.toml (macOS: ~/Library/Application Support/ssh-hub/servers.toml):

[servers.staging]
host = "staging.example.com"
user = "deploy"
port = 2222
remote_path = "/var/www/app"
identity = "~/.ssh/id_staging"

[servers.prod]
host = "prod.example.com"
user = "deploy"
remote_path = "~"

许可证

麻省理工学院