Skip to main content
Glama
nqmn

SSH Remote MCP Server

by nqmn

SSH Remote MCP-Server

SSH-Fernzugriff für MCP-kompatible Clients über das Model Context Protocol (MCP).

Schnellstart

Verwenden Sie eine virtuelle Umgebung, die von demselben Betriebssystem erstellt wurde, das auch den MCP-Server startet. Teilen Sie kein venv zwischen Windows und WSL/Linux.

Windows

  1. Installation:

    .\install.ps1
  2. Hinzufügen des MCP in Claude Desktop, Claude Code oder Codex:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "C:\\Users\\Intel\\Desktop\\adremote-mcp\\.venv-win\\Scripts\\python.exe",
          "args": [
            "C:\\Users\\Intel\\Desktop\\adremote-mcp\\ssh_mcp_server.py"
          ]
        }
      }
    }

    Wenn Sie bereits ein Windows-Python mit installierten paramiko und mcp haben, können Sie diesen Interpreter direkt anstelle von .venv-win verwenden.

WSL/Linux

  1. Installation:

    ./install.sh
  2. Hinzufügen des MCP in Claude Desktop, Claude Code oder Codex:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "/home/user/adremote-mcp/.venv-linux/bin/python",
          "args": [
            "/home/user/adremote-mcp/ssh_mcp_server.py"
          ]
        }
      }
    }

    Wenn über WSL vom Windows-Laufwerk auf das Repo zugegriffen wird, verwenden Sie den WSL-Pfad:

    {
      "mcpServers": {
        "ssh-remote": {
          "command": "/mnt/c/Users/Intel/Desktop/adremote-mcp/.venv-linux/bin/python",
          "args": [
            "/mnt/c/Users/Intel/Desktop/adremote-mcp/ssh_mcp_server.py"
          ]
        }
      }
    }

Portable Launcher

Sie können einen MCP-Client auch auf den mitgelieferten Launcher für das entsprechende Betriebssystem verweisen:

  • Windows: C:\Users\Intel\Desktop\adremote-mcp\run-ssh-mcp.cmd

  • WSL/Linux: /path/to/adremote-mcp/run-ssh-mcp.sh

Die Launcher bevorzugen das betriebssystemspezifische venv und greifen dann auf python3 oder python zurück. Unter Windows kann SSH_MCP_PYTHON gesetzt werden, um einen bestimmten Python-Interpreter zu erzwingen.

Für WSL/Linux-Clients verwenden Sie command: "/bin/sh" mit args: ["/path/to/adremote-mcp/run-ssh-mcp.sh"], falls das Skript nicht als ausführbar markiert ist.

Direkter Start

Nach der Installation der Abhängigkeiten können Sie den Server direkt ausführen:

Windows:

.\.venv-win\Scripts\python.exe .\ssh_mcp_server.py

WSL/Linux:

./.venv-linux/bin/python ssh_mcp_server.py

Automatische Einrichtung

Laden Sie dieses Repo herunter, starten Sie Claude oder Codex und bitten Sie es, diesen Ordner als globalen MCP-Server für Ihr aktuelles Betriebssystem hinzuzufügen. Danach können Sie ihn direkt aus dem Chat heraus verwenden.

Fehlerbehebung

Wenn Windows meldet:

No Python at '"/usr/bin\python.exe'

zeigt der MCP auf ein venv, das von WSL/Linux erstellt wurde. Erstellen Sie ein Windows-venv mit .\install.ps1 und aktualisieren Sie den MCP-Befehl auf .venv-win\Scripts\python.exe.

Related MCP server: MCP SSH Server

Funktionen

  • Funktioniert mit MCP-kompatiblen Clients unter Windows und Linux

  • Verbindung zu Remoteservern via SSH

  • Native Unterstützung für SSH-Jump-Hosts / Bastion-Hosts

  • Remote-Ausführung von Befehlen

  • Hoch-/Herunterladen von Dateien via SFTP

  • Verwaltung mehrerer Verbindungen

  • Zustandsüberwachung (Health Monitoring)

Anwendungsbeispiele

Verbindung mit Passwort:

Connect to 192.168.1.100 with username ubuntu and password mypass

oder in kürzerer Form:

ssh 192.168.1.100:22 ubuntu mypass

Der MCP testet zuerst die SSH-Verbindung mit Ihrem Benutzernamen und Passwort. Wenn die Anmeldung funktioniert, generiert oder installiert er einen SSH-Schlüssel, speichert die schlüsselbasierten Anmeldedaten lokal und speichert das Passwort nicht. Das Passwort wird nur beim ersten Mal verwendet.

Verbindung mit Passwort für eine einmalige Sitzung:

ssh 192.168.1.100:22 ubuntu mypass, save_credentials false

Dies behält nur die Live-Verbindung bei. Es werden keine wiederverwendbaren Anmeldedaten gespeichert und es wird kein automatischer Schlüssel-Bootstrap versucht.

Spätere Verbindung unter Verwendung des gespeicherten Namens:

ssh saved-name

Nach der ersten erfolgreichen Einrichtung verwenden Sie einfach den Namen der gespeicherten Anmeldedaten, um erneut eine Verbindung herzustellen.

Verbindung mit einem verschlüsselten (passwortgeschützten) privaten Schlüssel:

Connect to 10.0.2.15 as ubuntu using private key ~/.ssh/id_ed25519 with passphrase mysecret

oder über Tool-Parameter:

{
  "hostname": "10.0.2.15",
  "username": "ubuntu",
  "private_key_path": "~/.ssh/id_ed25519",
  "private_key_passphrase": "mysecret"
}

Die Passphrase wird zusammen mit den gespeicherten Anmeldedaten gespeichert, sodass zukünftige Aufrufe von ssh_connect_saved sie nicht erneut erfordern. Sie können bei ssh_connect_saved weiterhin private_key_passphrase angeben, um den gespeicherten Wert für eine einzelne Sitzung zu überschreiben.

Verbindung über einen Jump-Host:

Verwenden Sie das jump_host-Objekt bei ssh_connect oder ssh_save_credentials:

{
  "hostname": "10.0.2.15",
  "username": "ubuntu",
  "private_key_path": "~/.ssh/id_ed25519",
  "jump_host": {
    "hostname": "203.0.113.10",
    "username": "bastion",
    "private_key_path": "~/.ssh/id_ed25519",
    "port": 22
  }
}

Jump-Host-Schlüssel können ebenfalls passwortgeschützt sein – fügen Sie private_key_passphrase innerhalb des jump_host-Objekts hinzu.

Dies verwendet einen nativen SSH-Tunnel zum Zielhost, und gespeicherte Anmeldedaten behalten dieselbe Jump-Host-Konfiguration bei. Für wiederverwendbare gespeicherte Anmeldedaten muss der Jump-Host private_key_path anstelle eines Passworts verwenden.

Befehle ausführen:

List files in /home directory on my server
Run 'top' command on the remote server
Execute script.py and monitor its log

Dateiübertragungen:

Upload local file.txt to /home/user/ on the server
Download /var/log/app.log from the server

Verbindungsstatus und Inventar:

Check health of all SSH connections
Show me all active SSH connections

Anforderungen

  • Python 3.10+

  • paramiko

  • mcp

Letztes Update

Version 1.0.3 speichert die Passphrase des privaten Schlüssels in den gespeicherten Anmeldedaten:

  • private_key_passphrase wird jetzt in der Anmeldedatei gespeichert, wenn über ssh_connect oder ssh_save_credentials gespeichert wird

  • ssh_connect_saved verwendet die gespeicherte Passphrase automatisch – sie muss nicht bei jedem Aufruf angegeben werden

  • Die Angabe von private_key_passphrase bei ssh_connect_saved überschreibt den gespeicherten Wert nur für diese Sitzung

  • ssh_list_saved_credentials zeigt private key (passphrase saved) an, wenn eine Passphrase gespeichert ist

Version 1.0.2 fügt Unterstützung für passwortgeschützte (verschlüsselte) private Schlüssel hinzu:

  • private_key_passphrase wird bei ssh_connect, ssh_connect_saved und ssh_save_credentials akzeptiert

  • Gilt sowohl für den Zielhost-Schlüssel als auch für den Jump-Host-Schlüssel

  • Klare Fehlermeldungen, wenn ein Schlüssel verschlüsselt ist, aber keine Passphrase angegeben wurde oder die Passphrase falsch ist

Version 1.0.1 fügt sicherere und praktischere tägliche SSH-Workflows hinzu:

  • Direkte Logins speichern standardmäßig weiterhin wiederverwendbare Anmeldedaten, aber save_credentials=false schließt dies nun auch für Passwort-Sitzungen sauber aus

  • Abläufe für gespeicherte Anmeldedaten umfassen jetzt Helfer zum Verbinden, Speichern, Auflisten, Löschen und zur manuellen Schlüsseleinrichtung

  • Regeln für Host-Vertrauen und Dateiübertragung sind strenger, mit lokalen Root-Beschränkungen und Host-Pinning bei der ersten Verwendung (Trust-on-first-use)

  • Native Jump-Host-Verbindungen werden sowohl für Live-Sitzungen als auch für gespeicherte Anmeldedaten unterstützt

  • Gespeicherte Anmeldedaten sind schlüsselbasiert, daher ist für den normalen Gebrauch kein Master-Passwort erforderlich

  • Manuell gespeicherte Pfade zu privaten Schlüsseln werden beim Speichern validiert, nicht erst später bei der ersten Verbindung

Support

Kontaktieren Sie mich für eine Zusammenarbeit.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    -
    maintenance
    Connects Claude to remote servers via SSH to execute commands, manage files, and browse directories. It allows users to add, edit, and switch between multiple server configurations through natural language conversations.
  • -
    license
    -
    quality
    -
    maintenance
    Enables Claude Code to control remote servers via SSH for automated deployment, testing, and operations, including command execution and file transfer.
    4

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nqmn/adremote-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server