Zum Inhalt springen
kaiport

SSH-Verbindungen

SSH-Verbindungen in der Mac-App einrichten: Anmeldung mit Passwort oder Schlüssel, Zwei-Faktor, Host-Schlüssel, Jump-Hosts, Wiederverbinden und typische Fehler.

Eine SSH-Verbindung öffnet eine Shell auf einem Server in einem Terminal-Tab. kaiport bringt einen eigenen SSH-Client mit: Es braucht kein OpenSSH und liest beim Verbinden weder ~/.ssh/config noch ~/.ssh/known_hosts – alles Nötige steht in der Verbindung. Diese Seite erklärt jedes Feld einer SSH-Verbindung, wie die Anmeldung abläuft und was du tust, wenn eine Verbindung scheitert.

Eine SSH-Verbindung anlegen

  1. Klicke im Startfenster auf Neue Verbindung (New connection). Die Kachel SSH ist schon ausgewählt.
  2. Gib Host und Benutzername ein. Ändere den Port, falls der Server nicht 22 nutzt.
  3. Wähle unter Authentifizierung zwischen Passwort und SSH-Schlüssel.
  4. Klicke auf Anlegen.
  5. Klicke auf die neue Karte, um dich zu verbinden. Beim ersten Mal bittet kaiport dich, den Host-Schlüssel des Servers zu bestätigen.

Server und Anmeldung

FeldBeschreibung
NameOptional. Standardmäßig benutzer@host.
HostHostname oder IP-Adresse, etwa server.example.com oder 192.0.2.10. Pflichtfeld.
BenutzernameDas Konto auf dem Server, etwa root oder deploy. Pflichtfeld.
PortDer SSH-Port, standardmäßig 22.

Die Felder für Farbe, Tags, Gruppe und Favorit sind bei allen Verbindungsarten gleich. Siehe Gemeinsame Felder.

Authentifizierung

Passwort

Gib das Passwort im Feld Passwort ein. kaiport speichert es verschlüsselt, siehe Wo Zugangsdaten gespeichert werden.

Du kannst das Feld auch leer lassen. Dann fragt kaiport bei jeder Verbindung nach dem Passwort (Passwort erforderlich). Setze in diesem Dialog den Haken bei Verschlüsselt für diese Verbindung speichern, wenn kaiport es sich merken soll.

Lehnt der Server das Passwort ab, fragt kaiport erneut (Anmeldung fehlgeschlagen) – bis zu dreimal.

SSH-Schlüssel

  1. Wähle SSH-Schlüssel.
  2. Klicke neben Privater Schlüssel auf Auswählen und wähle deine Schlüsseldatei. Der Dateidialog öffnet sich in ~/.ssh.
  3. Ist der Schlüssel mit einer Passphrase geschützt, gib sie unter Passphrase ein.
  4. Klicke auf Anlegen bzw. Speichern.

Auswählen liest den Schlüssel sofort und importiert ihn verschlüsselt in den Tresor von kaiport. Die Mac-App läuft in Apples Sandbox und kann Schlüsseldateien nicht über ihren Pfad öffnen; deshalb ist das der einzige Weg, einen Schlüssel hinzuzufügen, und ins Feld lässt sich nichts tippen. Die Verbindung funktioniert weiter, wenn du die Datei verschiebst oder löschst. Ist ein Schlüssel gespeichert, weist das Feld darauf hin; Auswählen ersetzt ihn dann.

Verbindungen, die aus ~/.ssh/config oder einem kaiport-Export importiert wurden, bringen nur den Pfad des Schlüssels mit. Öffne sie vor dem ersten Verbinden mit Bearbeiten und wähl den Schlüssel einmal mit Auswählen; bis dahin bricht das Verbinden mit „Die App-Store-Version kann Schlüsseldateien nicht über ihren Pfad öffnen. Bearbeite die Verbindung und importiere den Schlüssel … mit „Auswählen“.“ ab.

FormatDie Datei beginnt mit
OpenSSH, etwa id_ed25519 oder id_rsa-----BEGIN OPENSSH PRIVATE KEY-----
PEM (RSA, DSA, EC)-----BEGIN RSA PRIVATE KEY-----, -----BEGIN EC PRIVATE KEY----- …
PuTTY .ppk, Format 2 und 3 (RSA, DSA, ECDSA, Ed25519)PuTTY-User-Key-File-2: oder PuTTY-User-Key-File-3:

Verschlüsselte Schlüssel funktionieren in jedem dieser Formate. PuTTY-Schlüssel wandelt kaiport im Speicher um, du brauchst also kein PuTTYgen. Zwei Formate liest kaiport nicht:

  • PuTTY-Format 1: Speichere den Schlüssel mit einem aktuellen PuTTYgen neu.
  • PKCS#8 (-----BEGIN PRIVATE KEY-----): Speichere den Schlüssel im OpenSSH-Format, etwa mit ssh-keygen -p -f <datei>.

Die Passphrase brauchst du nur für verschlüsselte Schlüssel; auch sie wird verschlüsselt gespeichert. Lässt du sie leer, fragt kaiport beim Verbinden danach (Passphrase erforderlich) und bietet an, sie zu speichern. Nach drei falschen Versuchen bricht die Verbindung mit „Passphrase wurde nicht akzeptiert.“ ab.

Kein SSH-Agent

Die Mac-App unterstützt keinen SSH-Agent: Die Sandbox erreicht den Socket des Agents nicht, deshalb kann sie sich weder über ssh-agent anmelden noch einen Agent weiterleiten. Importiere deinen Schlüssel stattdessen mit Auswählen (siehe SSH-Schlüssel) oder nimm ein Passwort. Eine importierte Verbindung, die sich mit einem Agent anmelden soll, zeigt „Die App-Store-Version kann den SSH-Agent nicht nutzen. Importiere den Schlüssel mit „Auswählen“ oder verwende ein Passwort.“ Siehe Die App-Sandbox.

Zwei-Faktor und andere Anmeldefragen

Manche Server stellen bei der Anmeldung Fragen – statt des Passworts oder zusätzlich, etwa nach einem Einmalcode aus einer Authenticator-App (Keyboard-Interactive-Anmeldung). kaiport zeigt diese Fragen im Dialog Anmeldung mit benutzer@host und einem Feld pro Frage. Antworten, die der Server als geheim markiert, bleiben beim Tippen verborgen.

  • Mit Verbinden schickst du die Antworten ab, mit Abbrechen hörst du auf („Verbindung abgebrochen“).
  • Ist ein Passwort gespeichert und fragt der Server zuerst danach, antwortet kaiport selbst. Du siehst dann nur die nächste Frage, etwa nach dem Bestätigungscode.
  • Verschlüsselt für diese Verbindung speichern erscheint nur, wenn der Server allein nach einem Passwort fragt. Einmalcodes werden nie gespeichert.

Host-Schlüssel prüfen

Der Host-Schlüssel belegt, dass du mit dem richtigen Server sprichst. kaiport prüft ihn bei jeder Verbindung und vertraut einem Schlüssel beim ersten Kontakt:

  • Erste Verbindung: kaiport zeigt Schlüsseltyp und SHA256-Fingerabdruck und fragt: „Die Echtheit von server.example.com kann nicht bestätigt werden.“ Vertrauen speichert den Schlüssel und verbindet, Abbrechen bricht ab.
  • Bekannter Schlüssel: kaiport verbindet ohne Rückfrage.
  • Geänderter Schlüssel: kaiport warnt „Der Host-Schlüssel von server.example.com hat sich geändert!“ und zeigt den neuen und den bisher gespeicherten Fingerabdruck. Abbrechen ist vorausgewählt; Neuen Schlüssel akzeptieren ersetzt den gespeicherten Schlüssel und verbindet.

Brichst du ab, scheitert die Verbindung mit „Host-Schlüssel wurde nicht akzeptiert.“

kaiport führt eine eigene Liste der Host-Schlüssel, einen pro Host und Port, getrennt von ~/.ssh/known_hosts. Einstellungen → Sicherheit → Bekannte Hosts zeigt sie mit Schlüsseltyp und Fingerabdruck. Vergessen entfernt einen Schlüssel; beim nächsten Verbinden fragt kaiport dann erneut. Siehe Sicherheit.

Erweiterte Einstellungen

Im Tab Erweitert (Advanced) findest du Jump-Host, den Befehl nach dem Verbinden, die Port-Weiterleitungen und deine Notizen.

Der Tab „Erweitert“
Der Tab „Advanced“ einer SSH-Verbindung mit Jump-Host, Befehl nach dem Verbinden, Port-Weiterleitungen und NotizenDer Tab „Advanced“ einer SSH-Verbindung mit Jump-Host, Befehl nach dem Verbinden, Port-Weiterleitungen und Notizen

Der Tab „Erweitert“

Jump-Host

Ein Jump-Host, auch Bastion genannt, ist ein Server, über den du Server erreichst, die nicht direkt erreichbar sind. kaiport meldet sich zuerst am Jump-Host an, öffnet von dort einen Tunnel zum Ziel und führt die SSH-Sitzung durch diesen Tunnel – wie ProxyJump bei OpenSSH.

  1. Lege den Jump-Host als eigene SSH-Verbindung an und speichere seine Zugangsdaten.
  2. Öffne die Zielverbindung mit Bearbeiten und wechsle zu Erweitert.
  3. Wähle unter Jump-Host (ProxyJump) den Jump-Host aus. Direkt verbinden schaltet ihn wieder ab.
  4. Klicke auf Speichern.

Die Karte des Ziels zeigt jetzt Jump. Beachte:

  • kaiport meldet sich am Jump-Host mit den dafür gespeicherten Zugangsdaten an und fragt unterwegs nicht nach. Speichere das Passwort des Jump-Hosts oder nutze einen Schlüssel.
  • Den Hostnamen des Ziels löst der Jump-Host auf. Interne Namen und Adressen wie 10.0.0.12 funktionieren also.
  • Es gibt genau einen Sprung: Die Jump-Host-Einstellung des Jump-Hosts selbst wird nicht verwendet.
  • Löschst du die Verbindung des Jump-Hosts, scheitert das Ziel mit „Der hinterlegte Jump-Host existiert nicht mehr.“

Beim Import von ~/.ssh/config übernimmt kaiport ProxyJump, siehe Import und Export.

Agent-Weiterleitung

Die Mac-App leitet keinen SSH-Agent weiter, weil sie keinen Agent unterstützt. Um über diesen Server einen weiteren zu erreichen, leg den weiteren als eigene Verbindung an, mit diesem als Jump-Host. Für git pull aus einem privaten Repository nimm einen Deploy-Schlüssel, der auf dem Server liegt.

Befehl nach dem Verbinden

Befehl nach dem Verbinden läuft automatisch, sobald der Prompt erscheint – bei jeder Verbindung, auch beim Wiederverbinden. Beispiele: cd /var/www && ls oder tmux attach || tmux new.

Port-Weiterleitungen

Lokale (-L), entfernte (-R) und SOCKS5-Weiterleitungen (-D) beschreibt die Seite Port-Weiterleitungen. Port-Weiterleitung gehört zu kaiport Pro.

KI-Einstellungen

Der Tab KI steuert AI Pilot auf diesem Server:

  • KI-Anweisungen für diese Verbindung werden dem System-Prompt von AI Pilot hinzugefügt, etwa „Das ist ein Produktionssystem – keine Neustarts ohne Rückfrage.“
  • Verbotene Befehle (KI) und Erlaubte Befehle (KI) nehmen ein Muster (regulärer Ausdruck) pro Zeile auf, etwa ^systemctl restart.

Siehe Freigaben und Sicherheit.

Verbindungszustände

ZustandWas du siehst
VerbindenVerbinde… über dem Terminal, mit dem Namen der Verbindung.
AnmeldenAnmeldung…, während kaiport sich anmeldet oder auf deine Antwort in einem Dialog wartet.
VerbundenDie Shell. Der Punkt im Tab nimmt die Farbe der Verbindung an.
FehlgeschlagenVerbindung fehlgeschlagen mit dem Grund, dazu Erneut verbinden und Tab schließen.
GetrenntVerbindung getrennt mit dem Grund, etwa „Sitzung beendet“, dazu Erneut verbinden und Tab schließen.

Wiederverbinden

Von Hand verbindest du neu mit Erneut verbinden, über Datei → Neu verbinden (⌘R) oder mit Erneut verbinden in der Befehlspalette.

Ist Einstellungen → Terminal → Automatisch neu verbinden an (Standard), verbindet kaiport eine Sitzung neu, die verbunden war und dann endete: bis zu drei Versuche, nach 2, 5 und 10 Sekunden. Die Einblendung zählt herunter, etwa „Neuer Versuch in 5 s…“. Das passiert auch, wenn die Shell auf dem Server endet, zum Beispiel nach exit – schließe den Tab mit ⌘W, wenn du fertig bist. Eine Verbindung, die gleich zu Beginn scheitert, versucht kaiport nicht automatisch erneut.

Beim Wiederverbinden läuft die ganze Anmeldung noch einmal: die Prüfung des Host-Schlüssels, Fragen nach allem, was nicht gespeichert ist, der Befehl nach dem Verbinden und die Port-Weiterleitungen.

Keepalive und Zeitlimits

kaiport schickt alle 15 Sekunden ein Keepalive an den Server. Bleiben drei nacheinander unbeantwortet, gilt die Verbindung als verloren. Der Verbindungsaufbau bricht nach 20 Sekunden mit „Zeitüberschreitung beim Verbindungsaufbau.“ ab.

Ältere und gehärtete Server

kaiport bevorzugt moderne Algorithmen, bietet ältere aber als letzte Möglichkeit mit an – wie PuTTY. Der beste Algorithmus, den beide Seiten beherrschen, gewinnt weiterhin, und alte Appliances, Switches oder NAS-Systeme verbinden sich ohne zusätzliche Einstellungen. Zu den Rückfallebenen gehören CBC-Chiffren wie aes128-cbc und 3des-cbc, hmac-md5, Schlüsselaustausch mit SHA-1 wie diffie-hellman-group14-sha1 und ssh-dss-Host-Schlüssel.

Auch Server, die nur chacha20-poly1305@openssh.com anbieten, funktionieren.

Scheitert der Handshake trotzdem, hängt kaiport an die Fehlermeldung an, was der Server anbietet, etwa „Handshake failed: no matching C->S cipher. Der Server bietet an: …“. Vergleiche diese Liste mit der Konfiguration des Servers.

Typische Fehler

MeldungUrsache und Lösung
Verbindung abgelehnt (ECONNREFUSED). Läuft der SSH-Dienst auf dem Port?Auf dem Port nimmt niemand Verbindungen an. Prüfe den Port und ob der SSH-Dienst läuft.
Host nicht gefunden (DNS-Auflösung fehlgeschlagen).Prüfe die Schreibweise des Hostnamens oder nimm die IP-Adresse.
Zeitüberschreitung beim Verbindungsaufbau.Der Server antwortet nicht: falsche Adresse, eine Firewall, oder der Server ist aus.
Host nicht erreichbar.Es gibt keinen Netzwerkweg zum Server, etwa weil ein VPN nicht verbunden ist.
Authentifizierung fehlgeschlagen.Der Server hat alle Anmeldeverfahren abgelehnt. Prüfe Benutzername, Passwort oder Schlüssel und welche Verfahren der Server erlaubt.
Host-Schlüssel wurde nicht akzeptiert.Du hast die Frage nach dem Host-Schlüssel abgebrochen. Siehe Host-Schlüssel prüfen.
Die App-Store-Version kann den SSH-Agent nicht nutzen. …Die Verbindung soll sich mit einem Agent anmelden. Wähl SSH-Schlüssel und importiere den Schlüssel oder nimm ein Passwort. Siehe Kein SSH-Agent.
Kein privater Schlüssel hinterlegt.Importiere unter Privater Schlüssel eine Schlüsseldatei mit Auswählen.
Die App-Store-Version kann Schlüsseldateien nicht über ihren Pfad öffnen. …Die Verbindung hat nur einen Schlüsselpfad, etwa aus einem Import. Öffne sie mit Bearbeiten und importiere den Schlüssel mit Auswählen.
Ungültiger Schlüssel: …Das Format wird nicht unterstützt, siehe SSH-Schlüssel.
Passphrase wurde nicht akzeptiert.Dreimal eine falsche Passphrase. Trage die richtige im Verbindungsdialog ein.
Der hinterlegte Jump-Host existiert nicht mehr.Wähle einen anderen Jump-Host oder Direkt verbinden.
Verbindung über Jump-Host „…“ fehlgeschlagen: …Die Anmeldung am Jump-Host oder der Tunnel zum Ziel ist gescheitert. Verbinde dich direkt mit dem Jump-Host, um den Grund zu sehen.

Weitere Hilfe findest du unter Fehlerbehebung.