// HOST HINZUFÜGEN

Tippe auf die Schaltfläche + im Host-Bildschirm, um einen neuen Server hinzuzufügen.

Pflichtfelder

  • Hostname / IP — die Server-Adresse oder IP. Sowohl IPv4 als auch IPv6 werden unterstützt.
  • Port — Standard ist 22. Ändere ihn, wenn dein Server SSH auf einem anderen Port betreibt.
  • Benutzername — der Unix-Benutzer, mit dem du dich anmelden möchtest (z. B. ubuntu, root, deploy).
  • Authentifizierung — wähle zwischen Passwort oder SSH-Schlüssel (empfohlen).

Host-Fingerabdruck-Verifizierung

Bei der ersten Verbindung zeigt SSHBorg den Fingerabdruck des Servers und bittet dich, ihn zu akzeptieren. Dies ist eine Sicherheitsprüfung: Sie stellt sicher, dass du dich mit dem richtigen Gerät verbindest und nicht mit einem Angreifer. Überprüfe, ob der Fingerabdruck mit dem übereinstimmt, den dir dein Server-Administrator mitgeteilt hat oder den du über einen vertrauenswürdigen Kanal erhalten hast.

Nach der Akzeptanz wird der Fingerabdruck lokal gespeichert. Wenn er sich bei einer zukünftigen Verbindung ändert, warnt dich SSHBorg — dies könnte auf einen Server-Neuaufbau, eine Schlüsselrotation oder einen Man-in-the-Middle-Angriff hinweisen.

// TIPP
Den Server-Fingerabdruck kannst du jederzeit überprüfen mit:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

// SSH-SCHLÜSSEL

Schlüsselbasierte Authentifizierung ist sicherer als Passwörter und erfordert nach der Einrichtung kein Eintippen mehr.

Schlüssel generieren

Gehe zu Einstellungen → SSH-Schlüssel → Neuen Schlüssel generieren. SSHBorg unterstützt:

  • Ed25519 — empfohlen. Schnell, kompakt und sicher.
  • ECDSA (P-256 / P-384) — gute Kompatibilität mit älteren Servern.
  • RSA (2048 / 4096 Bit) — maximale Kompatibilität, aber langsamer.

Gib dem Schlüssel einen aussagekräftigen Namen (z. B. mein-vps oder arbeits-server), damit du ihn später wiedererkennen kannst.

// SICHERHEITSHINWEIS
SSHBorg erlaubt absichtlich keinen Export privater Schlüssel. Der Schlüssel verlässt das Gerät nie. Wenn du denselben Schlüssel auf einem anderen Gerät benötigst, generiere dort einen neuen und autorisiere ihn separat auf deinen Servern — das ist der sicherere Ansatz.

Schlüssel auf dem Server autorisieren

Nach dem Generieren eines Schlüssels tippe darauf, um den öffentlichen Schlüssel zu sehen. Kopiere ihn und füge ihn in die Datei ~/.ssh/authorized_keys des Servers für den gewünschten Benutzer ein.

  1. Öffne auf deinem Smartphone SSHBorg → Einstellungen → SSH-Schlüssel → tippe auf den Schlüssel → öffentlichen Schlüssel kopieren.
  2. Melde dich bei deinem Server an (mit Passwort oder einem anderen bereits vorhandenen Schlüssel).
  3. Füge den öffentlichen Schlüssel zur Authorized-Keys-Datei hinzu:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "ssh-ed25519 AAAA...deinkopierterSchlüssel..." >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
  4. Versuche, dich mit SSHBorg zu verbinden — es sollte sich ohne Passwortabfrage anmelden.
// SERVER-VORAUSSETZUNG
Stelle sicher, dass dein Server PubkeyAuthentication yes in /etc/ssh/sshd_config hat. Dies ist auf den meisten Distributionen der Standard, aber einige gehärtete Images deaktivieren es.

Zusätzliche Schlüsselverschlüsselung

SSHBorg bietet eine optionale zusätzliche Passphrase für deine Schlüssel (Einstellungen → SSH-Schlüssel → Schlüssel antippen → Verschlüsselung aktivieren). Wenn aktiviert, wird der Schlüssel mit einer Passphrase verschlüsselt, die SSHBorg nicht speichert — du wirst jedes Mal danach gefragt, wenn der Schlüssel verwendet wird.

Dies wird dringend empfohlen, wenn du sensible Server-Zugangsdaten auf deinem Smartphone speicherst oder die biometrische Sperre deaktiviert hast.

// BEFEHLSVORSCHLÄGE

SSHBorg zeigt eine Vorschlagsleiste über der Tastatur an, während du im Terminal tippst. Die Vorschläge stammen aus der Shell-Historie des Benutzers, mit dem du dich verbunden hast.

Funktionsweise

Wenn eine Terminal-Sitzung geöffnet wird, liest SSHBorg die Shell-Historiendatei vom Remote-Server. Es werden folgende Pfade der Reihe nach geprüft:

  1. ~/.bash_history — Standard für Bash-Shells
  2. ~/.zsh_history — Standard für Zsh (wird auch als $HISTFILE geprüft, wenn gesetzt)
  3. ~/.local/share/fish/fish_history — für Fish-Shell-Benutzer

Die erste vorhandene und lesbare Datei wird verwendet. Während du tippst, werden Befehle in Echtzeit gefiltert und als Chips in der Vorschlagsleiste angezeigt. Tippe auf einen Chip, um den Befehl einzufügen.

Fehlerbehebung

Es werden keine Vorschläge angezeigt

  • Die Historiendatei existiert möglicherweise noch nicht (erste Anmeldung oder Shell nicht für das Speichern der Historie konfiguriert).
  • Stelle sicher, dass deine Shell die Historie speichert. Für Bash füge zu ~/.bashrc hinzu:
    HISTFILE=~/.bash_history
    HISTSIZE=10000
    HISTFILESIZE=20000
  • Für Zsh füge zu ~/.zshrc hinzu:
    HISTFILE=~/.zsh_history
    HISTSIZE=10000
    SAVEHIST=10000
    setopt APPEND_HISTORY SHARE_HISTORY

Vorschläge gehören dem falschen Benutzer

// BEKANNTE EINSCHRÄNKUNG
Wenn du dich als ein Benutzer verbindest und dann sudo su - root ausführst (oder mit su zu einem anderen Benutzer wechselst), zeigt die Vorschlagsleiste weiterhin die Historie des ursprünglichen Anmeldebenutzers, nicht von root. Dies liegt daran, dass SSHBorg die Historiendatei liest, bevor die Shell startet, und dabei die Anmeldedaten verwendet.

Um Vorschläge aus der Root-Historie zu erhalten, füge in SSHBorg einen separaten Host-Eintrag hinzu, der direkt als root anmeldet (sofern dein Server dies erlaubt).

// AGENT-FORWARDING

SSH-Agent-Forwarding ermöglicht es, die in SSHBorg gespeicherten Schlüssel für weitere Verbindungen zu verwenden, die vom Remote-Server aus hergestellt werden — zum Beispiel für git clone eines privaten Repos oder um zu einer zweiten Maschine zu springen.

Forwarding in SSHBorg aktivieren

Beim Hinzufügen oder Bearbeiten eines Hosts aktiviere den Schalter Agent-Forwarding. SSHBorg fungiert dann als SSH-Agent für diese Sitzung.

Server-seitige Konfiguration

Der Server muss Agent-Forwarding erlauben. Überprüfe /etc/ssh/sshd_config:

AllowAgentForwarding yes

Dies ist auf den meisten Systemen der Standard. Nach einer Änderung den SSH-Daemon neu starten:

sudo systemctl restart sshd

Client-Konfiguration pro Host (optional)

Wenn du dich auch von Laptop oder Desktop mit diesem Server verbindest, kannst du das Forwarding dauerhaft in deiner lokalen ~/.ssh/config konfigurieren:

Host myserver
    HostName 203.0.113.42
    User ubuntu
    ForwardAgent yes
// SICHERHEITSHINWEIS
Agent-Forwarding gibt dem Remote-Server vorübergehend Zugriff auf deinen SSH-Agent-Socket. Ein Root-Benutzer (oder ein kompromittierter Prozess) auf diesem Server könnte deine Schlüssel verwenden, um sich anderswo zu verbinden, solange deine Sitzung aktiv ist. Aktiviere Forwarding nur auf Servern, denen du vertraust.

// VERBINDUNGSABBRÜCHE & TERMINAL-MULTIPLEXER

SSH ist eine aktive TCP-Verbindung zwischen deinem Smartphone und dem Server. Wenn die Verbindung unterbrochen wird — auch nur für eine Sekunde — gehen die Sitzung und alles, was darin läuft, verloren.

Warum Verbindungen auf Mobilgeräten abbrechen

Mobilfunknetze sind aus mehreren Gründen besonders anfällig für Verbindungsabbrüche:

  • IP-Adressänderungen — beim Reisen oder Wechseln zwischen Sendemasten kann dir dein Anbieter eine neue öffentliche IP zuweisen. Da TCP-Verbindungen an die IP-Adresse gebunden sind, wird die bestehende SSH-Sitzung sofort ungültig.
  • WLAN ↔ Mobilfunk-Wechsel — das Wechseln zwischen WLAN und Mobilfunkdaten (oder umgekehrt) ändert deine IP und unterbricht alle offenen TCP-Verbindungen.
  • Inaktivitäts-Timeouts — Mobilfunkanbieter und NAT-Router beenden oft inaktive Verbindungen nach wenigen Minuten. Lang laufende, aber stille Sitzungen (Log-Beobachtung, auf Eingabe warten) sind gefährdet.
  • Signalverlust — Tunnel, Tiefgaragen oder einfach ein schwaches Signal können kurz die Netzwerkverbindung unterbrechen, was ausreicht, um eine Sitzung zu beenden.
// WICHTIG
Wenn du einen langen Befehl (einen Build, ein Backup, eine Datenbankmigration) direkt im SSH-Terminal ausführst und die Verbindung abbricht, wird der Befehl sofort beendet. Eventuell hinterlässt er einen inkonsistenten Zustand.

Die Lösung: tmux oder screen

Ein Terminal-Multiplexer führt eine persistente Sitzung auf dem Server aus, völlig unabhängig von deiner SSH-Verbindung. Wenn die Verbindung abbricht, läuft die Sitzung weiter. Nach der Wiederverbindung hängst du dich wieder ein und findest alles genau so vor, wie du es verlassen hast.

Dies ist die nützlichste Gewohnheit für alle, die Server vom Smartphone aus verwalten.

Schnellstart mit tmux

tmux ist auf den meisten modernen Linux-Distributionen verfügbar und die empfohlene Wahl.

# Neue benannte Sitzung starten
tmux new -s work

# Von der Sitzung trennen (laufen lassen)
Ctrl+B, dann D

# Laufende Sitzungen auflisten
tmux ls

# Sitzung wieder einbinden
tmux attach -t work

# Zuletzt verwendete Sitzung wieder einbinden
tmux attach

Schnellstart mit screen

screen ist älter, aber auf praktisch jedem Unix-System verfügbar, auch auf minimalen Server-Images, auf denen tmux möglicherweise nicht installiert ist.

# Neue benannte Sitzung starten
screen -S work

# Von der Sitzung trennen
Ctrl+A, dann D

# Laufende Sitzungen auflisten
screen -ls

# Sitzung wieder einbinden
screen -r work

Empfohlener Workflow auf Mobilgeräten

  1. Mit SSHBorg mit dem Server verbinden.
  2. Sofort eine tmux/screen-Sitzung starten oder wieder einbinden: tmux attach || tmux new -s main
  3. Befehle innerhalb des Multiplexers ausführen.
  4. Falls die Verbindung abbricht, einfach neu verbinden — die Sitzung ist noch da.
// TIPP
Du kannst tmux attach || tmux new -s main zu deiner ~/.bashrc oder ~/.zshrc auf dem Server hinzufügen, damit bei jeder Anmeldung über SSHBorg automatisch eine Multiplexer-Sitzung gestartet wird.

// JUMP-HOSTS

Ein Jump-Host (auch Bastion-Host genannt) ist ein Zwischenserver, durch den du einen Zielserver erreichen musst, der nicht direkt aus dem Internet zugänglich ist. SSHBorg unterstützt einfache und mehrstufige Jump-Ketten nativ.

Jump-Host in SSHBorg konfigurieren

  1. Den Bastion-Server als normalen Host in SSHBorg hinzufügen (z. B. bastion).
  2. Den Zielserver als weiteren Host hinzufügen.
  3. In den Einstellungen des Ziel-Hosts Jump-Host auf den erstellten Bastion-Host setzen.
  4. Agent-Forwarding auf dem Bastion-Eintrag aktivieren — damit kann dein Schlüssel durch den Bastion weitergeleitet werden, um sich auf dem Ziel zu authentifizieren.
// FUNKTIONSWEISE
SSHBorg stellt zuerst eine SSH-Verbindung zum Bastion her und öffnet dann einen weitergeleiteten TCP-Kanal durch diesen zum Zielserver. Der private Schlüssel verlässt niemals das Smartphone — der Bastion leitet nur den verschlüsselten Datenstrom weiter.

Multi-Hop-Ketten

Wenn du durch mehrere Zwischenserver springen musst (z. B. Internet → Bastion → DMZ → Ziel), erstelle einen Eintrag für jeden Hop und verkette sie:

  • bastion — kein Jump-Host, Agent-Forwarding aktiv
  • dmz — Jump-Host = bastion, Agent-Forwarding aktiv
  • target — Jump-Host = dmz
// WICHTIG
Agent-Forwarding muss auf jedem Zwischenhop aktiviert sein, nicht nur auf dem ersten. Ohne dies bricht die Authentifizierungskette ab und die Verbindung zum letzten Server schlägt mit einem „Permission denied"-Fehler fehl.

Äquivalente manuelle Konfiguration (zur Referenz)

Die entsprechende Konfiguration in einer Desktop-~/.ssh/config sieht so aus:

Host bastion
    HostName bastion.example.com
    User admin
    ForwardAgent yes

Host target
    HostName 10.0.1.50
    User ubuntu
    ProxyJump bastion
    ForwardAgent yes

Mit dieser Konfiguration springt ssh target auf dem Laptop transparent durch den Bastion.

Firewall-Anforderungen

  • Das Smartphone muss den Bastion über seinen SSH-Port (normalerweise 22) erreichen können.
  • Der Bastion muss das Ziel über seinen SSH-Port erreichen können.
  • Das Ziel muss nicht direkt vom Smartphone aus erreichbar sein.

// MEHRERE SITZUNGEN

SSHBorg ermöglicht es, mehrere SSH-Terminal- und SFTP-Dateimanager-Sitzungen gleichzeitig offen zu halten, auch zu verschiedenen Servern.

  • Sitzungen über den Host-Bildschirm öffnen durch Antippen von Terminal oder SFTP.
  • Mit dem Sitzungsauswähler oben im Bildschirm zwischen offenen Sitzungen wechseln.
  • Sitzungen bleiben im Hintergrund aktiv, solange die Netzwerkverbindung besteht.
  • Die Host-Liste zeigt ein kleines Abzeichen neben jedem Host mit der Anzahl aktiver SSH- und SFTP-Sitzungen, sodass du auf einen Blick sehen kannst, was offen ist.
// TIPP
Lang laufende Befehle (Builds, Backups, Log-Beobachtung) laufen weiter, auch wenn du zu einer anderen Sitzung wechselst. Verwende einen Terminal-Multiplexer wie tmux oder screen auf der Server-Seite, wenn sie auch einen SSH-Verbindungsabbruch überleben sollen.

// APP-SICHERHEIT

Biometrische Sperre

Aktiviere die biometrische Sperre unter Einstellungen → Sicherheit → Biometrische Sperre. Wenn aktiv, erfordert SSHBorg einen Fingerabdruck oder Gesichtserkennung, bevor Host-, Anmelde- oder Sitzungsdaten angezeigt werden.

Du kannst ein Inaktivitäts-Timeout festlegen — nach dieser Anzahl von Minuten im Hintergrund sperrt sich die App automatisch.

Screenshot-Schutz

Standardmäßig blockiert SSHBorg Screenshots und Bildschirmaufnahmen, um zu verhindern, dass sensible Terminal-Inhalte über den Zuletzt-Geöffnet-Bildschirm oder Aufnahme-Tools durchsickern.

Wenn du einen Screenshot machen musst (z. B. um eine Terminal-Ausgabe zu teilen), kannst du den Screenshot-Schutz vorübergehend unter Einstellungen → Sicherheit → Screenshots erlauben deaktivieren.

Anmeldedatenspeicherung

Alle Anmeldedaten (Passwörter, private Schlüssel, Passphrasen) werden verschlüsselt im Android Keystore gespeichert — einem hardware-gestützten sicheren Speicher, der auf Android 10+ verfügbar ist. Sie werden niemals auf externen Speicher geschrieben oder übertragen.

// HINWEIS ZUM BACKUP
Da Schlüssel im Android Keystore gespeichert sind, können sie nicht über Androids Cloud-Backup gesichert werden und werden nicht automatisch auf ein neues Gerät übertragen. Stelle vor einem Gerätewechsel sicher, dass du einen auf dem neuen Gerät generierten Schlüssel auf allen deinen Servern autorisierst.