← zurück zur Toolbox

SSH Onboard · Anleitung

Einer externen Person einen abgesicherten SSH-Zugang auf dem eigenen Linux- oder Windows-System einrichten — in vier Schritten.

Kurzfassung: Das Script legt einen separaten, abgesicherten Benutzer für die externe Person an. Ihre bestehenden SSH-Einstellungen und Ihre Firewall bleiben unangetastet — hinzu kommt nur eine eigene, klar gekennzeichnete Regel-Datei für den neuen Benutzer. Es installiert keine Pakete und lädt nichts nach. Ohne --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:

SHA256:q8vC9DBIym4Pj2dy9MUzfK2bWlNR/lmXay5n0Hwe1J4
Stimmen die Zeichenfolgen nicht überein, brechen Sie ab und führen Sie --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:

Die VPN-Einrichtung sprengt den Rahmen dieser Anleitung — klären Sie den passenden Weg gemeinsam mit der externen Person.

Optionale Einstellungen

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.