Zum Inhalt springen

SSH Tunnel Environments

ReadyStackGo kann Docker-Hosts auf entfernten Servern über SSH-Tunnel als Deployment-Ziele nutzen. Kein exponierter Docker-Port nötig, kein Agent auf dem Remote-Host – nur SSH-Zugang.

Environment-TypVerbindungAnwendungsfall
Docker SocketLokaler Unix-SocketReadyStackGo läuft auf demselben Host wie Docker
SSH TunnelSSH → Remote Docker SocketDocker auf einem entfernten Server, erreichbar per SSH

Schritt für Schritt: SSH Tunnel Environment erstellen

Abschnitt betitelt „Schritt für Schritt: SSH Tunnel Environment erstellen“

Navigieren Sie zu Environments im Hauptmenü. Hier sehen Sie alle konfigurierten Docker-Environments.

Environments-Liste


Klicken Sie auf Add Environment. Auf der Erstellungsseite sehen Sie den Connection Type Selector mit zwei Optionen:

  • Local Docker Socket – Direkter Zugriff auf den lokalen Docker-Socket
  • SSH Tunnel – Verbindung zu einem entfernten Docker-Host über SSH

Typ-Selektor auf der Add Environment Seite

Klicken Sie auf SSH Tunnel, um das SSH-Formular zu öffnen.


Das Formular zeigt die SSH-spezifischen Felder:

SSH Tunnel Formular

FeldPflichtBeschreibung
Environment NameJaBeschreibender Name (z.B. “Production Server”)
SSH HostJaIP-Adresse oder Hostname des Remote-Servers
SSH PortNeinStandard: 22
SSH UsernameJaBenutzername für die SSH-Verbindung (z.B. “root”, “deploy”)
Authentication MethodJaPrivate Key (empfohlen) oder Password
Private Key / PasswordJaSSH-Schlüssel im PEM-Format oder Passwort
Remote Docker Socket PathNeinStandard: /var/run/docker.sock

Wählen Sie die gewünschte Authentifizierungsmethode:

Private Key (empfohlen): Fügen Sie den vollständigen privaten SSH-Schlüssel im PEM-Format ein.

Password: Geben Sie das SSH-Passwort ein.

Passwort-Authentifizierung


Füllen Sie alle Felder aus und klicken Sie auf Test Connection, um die SSH-Verbindung und den Docker-Zugriff zu prüfen.

Ausgefülltes SSH-Formular

Der Test:

  1. Baut eine SSH-Verbindung auf
  2. Erstellt einen TCP-Tunnel zum Docker-Socket
  3. Ruft Docker System Info ab
  4. Zeigt Docker-Version und Erfolg/Fehler an

Test Connection Button


Klicken Sie auf Create Environment. Das SSH Tunnel Environment ist sofort einsatzbereit für Deployments, Health Monitoring und Container-Management.


RSGO Controller Remote Host
┌─────────────────┐ SSH Tunnel ┌─────────────────┐
│ SshTunnelManager │────Port 22────────→│ sshd │
│ (SSH.NET) │ │ │
│ │ │ socat bridge │
│ DockerService │ TCP-Tunnel │ TCP → Unix │
│ (Docker.DotNet) │──localhost:random──→│ docker.sock │
└─────────────────┘ └─────────────────┘
  1. SSH-Verbindung: SSH.NET baut eine SSH-Verbindung zum Remote-Host auf
  2. Socat Bridge: Auf dem Remote-Host startet socat eine Brücke von TCP zu Unix-Socket
  3. Port Forwarding: SSH Local Port Forwarding leitet localhost:random-port zum socat-Port weiter
  4. Docker Client: Docker.DotNet verbindet sich via tcp://localhost:random-port
  • SSH-Zugang (Port 22 oder custom)
  • Docker installiert und laufend
  • socat installiert (apt install socat / yum install socat)
  • SSH-Benutzer muss Zugriff auf den Docker-Socket haben (Gruppe docker)

SSH-Credentials (Private Keys und Passwords) werden mit AES-256-CBC verschlüsselt gespeichert:

KonfigurationBeschreibung
RSGO_ENCRYPTION_KEYEnvironment Variable für den Master Key
/data/.encryption-keyAuto-generierter Key (Fallback)

FehlerUrsacheLösung
Connection refusedSSH-Server nicht erreichbarHost/Port prüfen, Firewall checken
Authentication failedFalsche CredentialsUsername/Key/Password prüfen
socat not availablesocat nicht installiertapt install socat auf dem Remote-Host
Permission denied on socketKein Docker-Socket-ZugriffUser zur Gruppe docker hinzufügen
Connection timeoutNetzwerk-ProblemSSH-Erreichbarkeit prüfen (ssh user@host)