LS

lang315/sshgate

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

0 stars 0 forks Качество 70 Тренд 20MIT

Human-approved SSH for AI agents: an MCP server, a hub with an encrypted vault, and a desktop app where every AI command waits for your decision.

Обзор

lets an AI agent (Claude Code or any MCP client) run shell commands on your SSH servers, but only after you approve each command in a desktop app by default (see Auto-allow for the one opt-in exception). It is one Go binary plus an Electron app: - the (sshgate), which your MCP client starts; - the (sshgate hub), which holds an encrypted vault of saved servers, the SSH connections, and the approval queue; - the (desktop/), which runs the hub and gives you SSH terminal tabs next to the AI's pending requests. Every AI command is approved by a human by default. You may put one host on auto-allow (plain exec by default; root hosts and sudo-exec only when you opt in per host) for a set time, or until turned off; it is visible while on, audited, and stoppable at any time. The AI only sees servers you mark visible, and only connects to a server whose host key you have pinned.

README

Показан фрагмент оригинального README. Открыть оригинал.

sshgate

sshgate lets an AI agent (Claude Code or any MCP client) run shell commands on your SSH servers, but only after you approve each command in a desktop app by default (see Auto-allow for the one opt-in exception). It is one Go binary plus a desktop app:

  • the bridge (sshgate), which your MCP client starts;
  • the hub (sshgate hub), which holds an encrypted vault of saved servers, the SSH connections, and the approval queue;
  • the desktop app (app/, macOS), a native Go app that runs the hub and gives you SSH terminal tabs next to the AI’s pending requests. On Windows and Linux there is no desktop app; hub --cli approves from a terminal.

Every AI command is approved by a human by default. You may put one host on auto-allow (plain exec by default; root hosts and sudo-exec only when you opt in per host) for a set time, or until turned off; it is visible while on, audited, and stoppable at any time. The AI only sees servers you mark visible, and only connects to a server whose host key you have pinned.

sshgate started as a Go rewrite of tufantunc/ssh-mcp (MIT) and is now a separate project, not affiliated with or endorsed by it.

Contents

How it works

Claude Code ──stdio──▶ sshgate (bridge) ──per-user socket──▶ sshgate hub ──SSH──▶ your servers
                                                                  ▲
                                          desktop app ──stdio─────┘  (unlock, approve, terminals)
  1. The AI calls exec through the bridge. The bridge holds no secrets and makes no decisions; it forwards the call to the hub over a socket only your user can open.
  2. The hub checks that the server exists, is visible to AI, has a pinned host key, and that the vault is unlocked (a host on auto-allow also runs while the app is locked). Then it queues the request, unless the host is on auto-allow, in which case it runs at once.
  3. The app shows the request: server, user@host:port, the exact command, and the AI’s description (marked unverified). You Deny, Allow, or Send to tab.
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "sshgate": { "command": "sshgate", "args": ["--host=1.2.3.4", "--user=root", "--key=/path/to/key"] } } }