Dokumentation
Schnellstart + Funktionsbeschreibung für jeden Bereich und jedes Gerät (wird laufend erweitert)
Installation & Deinstallation
Dieser Artikel beschreibt ausführlich, wie du das SSH Everywhere Panel installierst, aktualisierst und deinstallierst. Der Schwerpunkt liegt auf „wie deinstalliere ich, nachdem ich das Installationsverzeichnis geändert habe“ sowie auf Formatdetails in den Befehlen (Leerzeichen, Anführungszeichen).
1. Installation (ein Einzeiler)
Auf einem Linux-Server mit öffentlicher IP ausführen:
curl -fsSL https://ssheverywhere.com/install.sh | bash
Das Skript erledigt automatisch: System erkennen → Abhängigkeiten installieren (Python3 / venv / pip / git / curl) → Code herunterladen → virtuelle Umgebung anlegen → Python-Abhängigkeiten installieren → systemd-Dienst registrieren und starten.
Unterstützt Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (ohne systemd wird automatisch auf Hintergrundbetrieb umgestellt).
Installationsparameter
| Parameter | Beschreibung | Beispiel |
|---|---|---|
--lang <Code> | Sprache der Hinweise + Standardsprache des Panels (standardmäßig automatische Erkennung anhand des System-Locale; akzeptiert auch die Nummer 1-16) | --lang ja |
--dir <Verzeichnis> | Installationsverzeichnis (standardmäßig /opt/ssh-everywhere; wenn nicht beschreibbar, automatischer Rückfall auf ~/ssh-everywhere mit Erklärung in der Ausgabe) | --dir /opt/my-panel |
--port <Port> | Port des Panels (standardmäßig 5501) | --port 8080 |
--ascii | Erzwingt eine Ausgabe mit reinen ASCII-Symbolen ([ok] / [..] / [!] / [x]); kein Zeichensalat in irgendeinem Terminal | --ascii |
--unicode | Erzwingt eine Ausgabe mit Unicode-Symbolen (✓ ⟳ ⚠️ ❌); in UTF-8-Umgebungen ist dies der Standard | --unicode |
--yes / -y | Automatische Bestätigung beim Upgrade, keine Interaktion nötig | --yes |
Unterstützte Sprachcodes (16)
| Code | Sprache | Code | Sprache | Code | Sprache | Code | Sprache |
|---|---|---|---|---|---|---|---|
zh | 中文 | en | English | ja | 日本語 | ko | 한국어 |
es | Español | fr | Français | de | Deutsch | ru | Русский |
pt | Português | it | Italiano | ar | العربية | tr | Türkçe |
vi | Tiếng Việt | th | ไทย | id | Bahasa Indonesia | hi | हिन्दी |
Ohne --lang wird automatisch anhand des System-Locale erkannt (zum Beispiel LANG=ja_JP.UTF-8 → Hinweise auf Japanisch). Wenn das Locale des Servers oder Terminals nicht UTF-8 ist (bei den schlanken Images großer Cloud-Anbieter ist LANG=C üblich), wechselt das Skript automatisch auf reine ASCII-Symbole [ok]; ohne ausdrücklich angegebene Sprache werden auch die Hinweistexte auf Englisch zurückgesetzt, und der Grund wird am Anfang erklärt — all das, um Zeichensalat zu vermeiden. Um Ihre Sprache zu erzwingen, verwenden Sie: --lang xx --unicode.
Beim Übergeben von Parametern über eine Pipe muss bash -s -- ergänzt werden:
# Hinweise auf Japanisch + japanisches Panel curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # Hinweise auf Russisch + benutzerdefiniertes Verzeichnis und Port curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # Alte Terminals / GBK-Terminals mit Zeichensalat-Risiko: reine ASCII-Ausgabe (chinesische Hinweise + [ok]-Symbole) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # Arabisch (RTL-Oberfläche) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
Sie können es auch zuerst herunterladen und dann ausführen (interaktiv: fragt nacheinander nach Sprache, Verzeichnis und Upgrade-Bestätigung):
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> Große Cloud-Anbieter (Tencent Cloud / Alibaba Cloud) deaktivieren standardmäßig die root-Anmeldung. Ein ausdrücklich angegebenes --dir wird vorrangig respektiert; nur wenn der aktuelle Benutzer keine Schreibrechte für dieses Verzeichnis hat, wechselt das Skript automatisch in Ihr HOME-Verzeichnis (~/ssh-everywhere) und teilt in der Ausgabe klar mit, „welches Verzeichnis Sie angegeben haben, warum es ersetzt wurde und dass Sie es als root ausführen müssen, um dorthin zu installieren“.
2. Upgrade
Einfach den Installationsbefehl erneut ausführen; das Skript enthält eine Versionsprüfung und meldet eine neue Version zum Upgrade (Daten bleiben erhalten, vollautomatisch):
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes bedeutet, dass beim Upgrade automatisch bestätigt wird, ohne Interaktion.
3. Deinstallation
Deinstallation im Standardverzeichnis (interaktiv, empfohlen)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
Das Skript listet zuerst die zu entfernenden Inhalte auf und fragt nach einer Bestätigung; erst die Eingabe von yes führt es aus.
Nicht-interaktive / skriptgesteuerte Deinstallation
Mit --yes die Bestätigung überspringen (die Sicherheitsprüfung bleibt erhalten):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
Deinstallationsparameter
| Parameter | Beschreibung |
|---|---|
--dir <Verzeichnis> | Installationsverzeichnis (Standard /opt/ssh-everywhere, bei geändertem Verzeichnis zwingend anzugeben) |
--keep-data | data (Serverkonfiguration / Datenbank) vor der Deinstallation als tar-Paket sichern |
--yes | Deinstallation im nicht-interaktiven Modus bestätigen |
4. Wie deinstalliere ich, wenn ich das Installationsverzeichnis geändert habe? (Schwerpunkt)
Wurde bei der Installation das Verzeichnis per --dir geändert, muss bei der Deinstallation dasselbe --dir angegeben werden, sonst findet das Skript das Installationsverzeichnis nicht und bricht automatisch ab (ein Sicherheitsschutz gegen versehentliches Löschen).
Verzeichnispfad ohne Leerzeichen
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
Pipe-Variante (--dir hinter bash -s --):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
Verzeichnispfad mit Leerzeichen
Enthält der Verzeichnisname ein Leerzeichen, muss der gesamte Pfad in doppelte Anführungszeichen gesetzt werden, sonst zerlegt die Shell den Pfad in zwei Teile und das Skript findet das Verzeichnis nicht:
bash uninstall.sh --dir "/opt/my panel"
Bei der Pipe-Variante analog (Anführungszeichen um den gesamten Pfad, nicht nur um einen Teil davon):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
Daten behalten und dann deinstallieren
bash uninstall.sh --dir /opt/my-panel --keep-data
data (Serverkonfiguration / Datenbank) wird nach <Installationsverzeichnis>-data-backup-<Zeitstempel>.tar.gz gesichert und kann nach der Deinstallation wiedergefunden werden.
> 💡 Empfehlung: Vermeide bereits bei der Installation Leerzeichen im Verzeichnisnamen und nutze Binde- oder Unterstriche (z. B. my-panel, my_panel) – das erspart dir den Ärger mit Anführungszeichen.
5. Sicherheitshinweise
Das Deinstallationsskript enthält drei Schutzschichten gegen versehentliches Löschen:
1. Prüfung auf absoluten Pfad – relative Pfade werden abgelehnt.
2. Blacklist kritischer Systemverzeichnisse – /, /root, /etc, /usr, /var usw. werden abgelehnt.
3. Fingerabdruck-Prüfung des Installationsverzeichnisses – gelöscht wird nur, wenn VERSION und app.py zugleich vorhanden sind, sonst wird abgebrochen.
> Die Deinstallation entfernt nur das Panel selbst; Agents auf Zielservern/Geräten sind nicht betroffen (nach dem Löschen des Panels werden sie als offline angezeigt).