SSH Onboard · Anleitung
Einer externen Person einen abgesicherten SSH-Zugang auf dem eigenen Linux- oder Windows-System einrichten — in vier Schritten.
--apply zeigt es nur eine Vorschau — und alles ist
mit drei Befehlen wieder entfernbar.
Voraussetzungen: ein Linux-System mit laufendem SSH-Dienst (OpenSSH)
und einer gängigen Distribution wie Debian oder Ubuntu — vom Server über den VPS bis zum
Raspberry Pi — sowie Administratorrechte (sudo) darauf.
Für Windows-Systeme: siehe den Windows-Abschnitt unten.
Fehlt der SSH-Dienst, lässt er sich unter Debian/Ubuntu nachinstallieren:
sudo apt install openssh-server
Schritt 1 — Script auf das Zielsystem laden
Alle Schritte laufen direkt auf dem Linux-System, das den Zugang erhalten soll. Öffnen Sie dort ein Terminal — per SSH, über die Konsole Ihres Hosting-Anbieters oder direkt am Gerät — und laden Sie das Script herunter:
curl -O "https://toolbox.jozapf.de/get/ssh-onboard.sh"
Alternativ mit wget: wget "https://toolbox.jozapf.de/get/ssh-onboard.sh"
Schritt 2 — Vorschau ansehen
sudo bash ssh-onboard.sh
Dabei passiert noch nichts: Das Script zeigt Ihnen den Plan (welcher Benutzer angelegt würde, welcher Schlüssel hinterlegt würde) und den sogenannten Fingerprint des Schlüssels. Das Script selbst ist eine einzelne, lesbare Textdatei — Sie können (und sollten) sie vor dem Ausführen einsehen.
Schritt 3 — Fingerprint vergleichen
Der Fingerprint ist die Prüfsumme des Schlüssels, der hinterlegt wird. Verwenden Sie das unveränderte Script von dieser Seite, muss die angezeigte Zeichenfolge mit dieser hier exakt übereinstimmen:
--apply nicht aus.Schritt 4 — Ausführen
sudo bash ssh-onboard.sh --apply
Bestätigen Sie die Rückfrage ([y/N]) mit y. Das Script legt
den Zugang an und zeigt zum Schluss Benutzernamen und SSH-Port. Die externe Person braucht
zusätzlich eine Adresse, unter der sie das System erreicht — dazu der nächste Abschnitt.
Erreichbarkeit von außen
Die vom Script angezeigte IP ist nur die lokale Sicht des Systems — ob und wie es von außen erreichbar ist, bestimmt Ihre Netzwerkumgebung. Das Script ändert daran bewusst nichts. Zwei typische Fälle:
- Server oder VPS beim Hoster: bereits öffentlich erreichbar — teilen Sie der externen Person die öffentliche Adresse (oder den Hostnamen), den SSH-Port und den Benutzernamen mit.
- Gerät zu Hause oder im Büro (hinter einem Router, meist mit wechselnder IP-Adresse): Von einer dauerhaften Portfreigabe für SSH raten wir ab — sie macht das System aus dem Internet angreifbar und braucht wegen der wechselnden IP zusätzlich DynDNS. Der übliche Weg ist ein VPN (z. B. WireGuard oder ein Dienst wie Tailscale): Darüber erreicht die externe Person das System, ohne dass es im Internet exponiert wird.
Die VPN-Einrichtung sprengt den Rahmen dieser Anleitung — klären Sie den passenden Weg gemeinsam mit der externen Person.
Optionale Einstellungen
--sudo— der Zugang erhält volle Administratorrechte, ohne erneute Passwortabfrage (standardmäßig aus; nur setzen, wenn das wirklich gebraucht wird)--from "203.0.113.7"— der Zugang funktioniert nur von dieser festen IP-Adresse aus--user name— anderer Benutzername für den Zugang
Optionen lassen sich kombinieren, z. B.
sudo bash ssh-onboard.sh --sudo --apply
Windows-Systeme
Für Windows (10/11 bzw. Server 2019+ mit Microsofts OpenSSH-Server) gibt es das
Gegenstück ssh-onboard.ps1 — gleiches Prinzip: erst Vorschau, Änderung nur
mit -Apply, und derselbe Fingerprint wie in Schritt 3. In einer als
Administrator gestarteten PowerShell:
cd $env:USERPROFILE\Downloads Invoke-WebRequest -OutFile ssh-onboard.ps1 "https://toolbox.jozapf.de/get/ssh-onboard.ps1" powershell -ExecutionPolicy Bypass -File .\ssh-onboard.ps1 # Vorschau powershell -ExecutionPolicy Bypass -File .\ssh-onboard.ps1 -Apply # Ausführen
Die erste Zeile ist wichtig: Eine Administrator-PowerShell startet in
C:\Windows\System32 — der Wechsel in den Downloads-Ordner sorgt dafür, dass
das Script dort landet und gefunden wird (dort liegt auch ein per Browser-Button
geladenes Script).
Wichtig: Rechtsklick → „Mit PowerShell ausführen" funktioniert
nicht — es startet ohne Administratorrechte und kann kein
-Apply übergeben. Nutzen Sie die Administrator-PowerShell wie oben gezeigt.
Unterschiede zu Linux: Administratorrechte für den Zugang heißen hier
-Admin, und der SSH-Dienst wird beim Anwenden neu gestartet
(Windows-sshd kennt kein Reload — bestehende SSH-Sitzungen brechen kurz ab). Fehlt der
OpenSSH-Server: Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0,
danach Start-Service sshd. Die Befehle zum Entfernen zeigt das Script am
Ende an.
Wieder entfernen
Der komplette Zugang lässt sich jederzeit rückstandslos löschen:
sudo userdel -r ext-ops sudo rm -f /etc/sudoers.d/ssh-onboard-ext-ops sudo rm -f /etc/ssh/sshd_config.d/60-ssh-onboard-ext-ops.conf && sudo systemctl reload ssh
Haben Sie mit --user einen anderen Namen gewählt, ersetzen
Sie ext-ops entsprechend. Heißt der SSH-Dienst auf Ihrem System
sshd, lautet der letzte Befehl sudo systemctl reload sshd.