Warum funktionieren gespeicherte SSH-Agenten in Termius nicht?

Melden
  1. Einleitung
  2. Architektur und Funktionsweise von SSH-Agenten
  3. Warum funktioniert der gespeicherte SSH-Agent in Termius nicht?
  4. Erwartete Konsequenzen für Anwender
  5. Fazit

Einleitung

Termius ist eine beliebte SSH-Client-Anwendung, die speziell für die Verwaltung von Verbindungen und das komfortable Arbeiten mit SSH-Servern entwickelt wurde. Einer der häufig genutzten Mechanismen zur Authentifizierung über SSH ist der Einsatz eines SSH-Agenten, der private Schlüssel sicher verwaltet und die Eingabe des Passworts erleichtert. Dennoch berichten viele Nutzer davon, dass gespeicherte SSH-Agenten innerhalb von Termius scheinbar nicht funktionieren oder nicht die erwartete Funktionalität bieten. Im Folgenden werden die technischen Hintergründe und Gründe für dieses Verhalten erläutert.

Architektur und Funktionsweise von SSH-Agenten

Ein SSH-Agent ist ein Programm, das private Schlüssel im Arbeitsspeicher hält und Anfragen von SSH-Clients zur Authentifizierung beantwortet, ohne dass der Benutzer das Passwort jedes Mal neu eingeben muss. Er läuft meist als separater Prozess und kommuniziert über einen speziellen Unix-Domain-Socket oder über Umgebungsvariablen mit SSH-Client-Programmen.

Traditionell wird ein SSH-Agent auf dem lokalen Betriebssystem gestartet und steht allen SSH-Sitzungen innerhalb einer Benutzerumgebung zur Verfügung. Die SSH-Clients greifen dann diesen Agenten ab, um Anfragen wie das Signieren mit privaten Schlüsseln zu delegieren.

Warum funktioniert der gespeicherte SSH-Agent in Termius nicht?

Termius unterscheidet sich grundlegend von klassischen SSH-Clients wie OpenSSH. Es handelt sich hierbei meist um eine App oder ein Programm, welches auf verschiedenen Plattformen läuft, darunter auch mobile Systeme wie iOS und Android. Diese Plattformen bieten keine native Unterstützung für SSH-Agenten im klassischen Sinne, wie sie auf Desktop-Betriebssystemen üblich sind. Dabei sind mehrere Ursachen entscheidend:

Zum einen unterstützt Termius keinen echten SSH-Agenten im Hintergrund, der separat läuft und über Umgebungsvariablen mit dem SSH-Client kommuniziert. Stattdessen speichert Termius Schlüssel entweder innerhalb seiner eigenen verschlüsselten Datenbank oder verwaltet sie über eigene Mechanismen. Diese sind nicht kompatibel mit dem herkömmlichen SSH-Agenten-Protokoll. Wenn man in Termius einen SSH-Agenten speichert, bedeutet das meist, dass der Schlüssel in der App hinterlegt ist, nicht aber, dass ein laufender Agent-Prozess existiert, der als Vermittler dient.

Zum anderen verhindert die Sicherheitsinfrastruktur vieler moderner Betriebssysteme insbesondere mobiler Geräte den Zugriff auf sensible Daten durch andere Programme oder Standard-Mechanismen wie Unix-Sockets. Dies macht es schwierig, einen Agenten-ähnlichen Prozess im Hintergrund zu implementieren, der für alle Anwendungen zugänglich ist.

Außerdem verwendet Termius eigene Verbindungslogiken und Bibliotheken, die nicht auf die Umgebungsvariablen oder Unix-Domain-Sockets zugreifen, über die der traditionelle SSH-Agent kommuniziert. Somit weiß Termius schlichtweg nichts von einem extern laufenden SSH-Agenten, auch wenn ein solcher auf dem System existiert.

Erwartete Konsequenzen für Anwender

Für Anwender bedeutet das, dass die in Termius gespeicherten SSH-Schlüssel nicht automatisch vom SSH-Agenten eines Betriebssystems übernommen werden können. Ebenso kann Termius keine Schlüssel über einen externen SSH-Agenten anfordern, selbst wenn dieser lokal läuft. Stattdessen muss man Schlüssel direkt in Termius importieren, verwalten und für Verbindungen nutzen.

Aus diesem Grund funktioniert die herkömmliche Agent-Forwarding-Funktionalität, die beispielsweise auf Desktop-Systemen üblich ist, in Termius oft nicht oder nur eingeschränkt. Weiterhin bleibt die niedrige Integration mit systemweiten SSH-Agenten eine bekannte Einschränkung, die durch die Architektur von Termius und die Beschränkungen der Betriebssysteme bedingt ist.

Fazit

Zusammengefasst liegt das Nicht-Funktionieren gespeicherter SSH-Agenten in Termius weniger an einem technischen Fehler innerhalb der App selbst, sondern vielmehr an der grundsätzlichen Architektur, den Sicherheitsmodellen von Betriebssystemen und den nicht existierenden Schnittstellen für einen systemweiten SSH-Agenten. Termius nutzt seine eigene Schlüsselverwaltung und unterstützt kein klassisches SSH-Agent-Protokoll, weshalb gespeicherte SSH-Agenten, wie man es von Desktop-SSH-Clients kennt, in Termius nicht funktionieren.

0

Kommentare