Documentation

Démarrage rapide + description des fonctionnalités module par module et appareil par appareil (mise à jour continue)

Installation et désinstallation

Cet article détaille l'installation, la mise à niveau et la désinstallation du panneau SSH Everywhere, en insistant sur « comment désinstaller après avoir modifié le répertoire d'installation » ainsi que sur les détails de format des commandes (espaces, guillemets).

1. Installation (une seule ligne de commande)

À exécuter sur un serveur Linux doté d'une IP publique :

curl -fsSL https://ssheverywhere.com/install.sh | bash

Le script effectue automatiquement : détection du système → installation des dépendances (Python3 / venv / pip / git / curl) → téléchargement du code → création de l'environnement virtuel → installation des dépendances Python → enregistrement et démarrage du service systemd.

Distributions prises en charge : Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (bascule automatique en exécution en arrière-plan en l'absence de systemd).

Paramètres d'installation

ParamètreDescriptionExemple
--lang <code>Langue des messages + langue par défaut du panneau (détection automatique selon le locale du système par défaut ; accepte aussi le numéro 1-16)--lang ja
--dir <répertoire>Répertoire d'installation (par défaut /opt/ssh-everywhere ; s'il n'est pas accessible en écriture, repli automatique sur ~/ssh-everywhere avec explication dans la sortie)--dir /opt/my-panel
--port <port>Port du panneau (par défaut 5501)--port 8080
--asciiForce une sortie en symboles ASCII purs ([ok] / [..] / [!] / [x]) : aucun caractère illisible dans n'importe quel terminal--ascii
--unicodeForce une sortie en symboles Unicode (✓ ⟳ ⚠️ ❌) ; en environnement UTF-8, c'est la valeur par défaut--unicode
--yes / -yConfirmation automatique lors de la mise à niveau, sans interaction--yes

Codes de langue pris en charge (16)

CodeLangueCodeLangueCodeLangueCodeLangue
zh中文enEnglishja日本語ko한국어
esEspañolfrFrançaisdeDeutschruРусский
ptPortuguêsitItalianoarالعربيةtrTürkçe
viTiếng ViệtthไทยidBahasa Indonesiahiहिन्दी

Sans --lang, la détection se fait automatiquement selon le locale du système (par exemple LANG=ja_JP.UTF-8 → messages en japonais). Lorsque le locale du serveur ou du terminal n'est pas UTF-8 (les images allégées des grands fournisseurs cloud utilisent souvent LANG=C), le script bascule automatiquement sur des symboles ASCII purs [ok] ; si la langue n'est pas indiquée explicitement, il repasse aussi les messages en anglais et explique la raison au début — le but étant d'éviter tout caractère illisible. Pour forcer l'affichage de votre langue, utilisez : --lang xx --unicode.

Pour passer des paramètres via un pipe, il faut ajouter bash -s -- :

# Messages en japonais + panneau en japonais
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja

# Messages en russe + répertoire et port personnalisés
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080

# Terminaux anciens / GBK sujets aux caractères illisibles : sortie ASCII pure (messages en chinois + symboles [ok])
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii

# Arabe (interface RTL)
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar

Vous pouvez aussi le télécharger d'abord puis l'exécuter (mode interactif : il demande successivement la langue, le répertoire et la confirmation de mise à niveau) :

curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh

> Les grands fournisseurs cloud (Tencent Cloud / Alibaba Cloud) désactivent par défaut la connexion root. Le --dir indiqué explicitement est respecté en priorité ; ce n'est que si l'utilisateur courant n'a pas le droit d'écriture sur ce répertoire que le script bascule automatiquement vers votre répertoire HOME (~/ssh-everywhere) et précise clairement dans la sortie « quel répertoire vous avez indiqué, pourquoi il a été remplacé, et qu'il faut exécuter en root pour installer à cet endroit ».

2. Mise à niveau

Il suffit de relancer la commande d'installation : le script intègre une détection de version et signale la mise à niveau lorsqu'une nouvelle version existe (données conservées, entièrement automatique) :

curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes

--yes indique une confirmation automatique lors de la mise à niveau, sans interaction.

3. Désinstallation

Désinstallation du répertoire par défaut (interactive, recommandée)

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh

Le script liste d'abord ce qui va être désinstallé et demande confirmation : il faut saisir yes pour exécuter.

Désinstallation non interactive / scriptée

Ajoutez --yes pour sauter la confirmation (les contrôles de sécurité restent actifs) :

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes

Paramètres de désinstallation

ParamètreDescription
--dir <répertoire>répertoire d'installation (/opt/ssh-everywhere par défaut, obligatoire si le répertoire a été modifié)
--keep-datasauvegarder data (configuration des serveurs / base de données) dans une archive tar avant la désinstallation
--yesconfirmer la désinstallation en mode non interactif

4. Comment désinstaller après avoir modifié le répertoire d'installation ? (point important)

Si vous avez utilisé --dir à l'installation pour changer le répertoire, vous devez indiquer le même --dir à la désinstallation, sinon le script ne trouve pas le répertoire d'installation et s'arrête automatiquement (c'est une protection, pour éviter une suppression accidentelle).

Chemin de répertoire sans espace

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel

Via un pipe (--dir après bash -s --) :

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes

Chemin de répertoire contenant des espaces

Si le nom du répertoire contient des espaces, vous devez entourer tout le chemin de guillemets doubles, sinon le shell découpe le chemin en deux et le script ne trouve pas le répertoire :

bash uninstall.sh --dir "/opt/my panel"

Idem via un pipe (les guillemets entourent tout le chemin, n'en mettez pas seulement une moitié) :

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes

Conserver les données avant de désinstaller

bash uninstall.sh --dir /opt/my-panel --keep-data

data (configuration des serveurs / base de données) sera sauvegardé dans <répertoire d'installation>-data-backup-<horodatage>.tar.gz, récupérable après la désinstallation.

> 💡 Conseil : évitez d'utiliser des espaces dans le nom du répertoire dès l'installation et préférez un tiret ou un souligné (comme my-panel, my_panel) : cela épargne bien des soucis de guillemets.

5. Remarques de sécurité

Le script de désinstallation intègre trois niveaux de protection pour éviter les suppressions accidentelles :

1. Validation du chemin absolu —— les chemins relatifs sont refusés.

2. Liste noire des répertoires critiques du système —— /, /root, /etc, /usr, /var, etc. sont refusés.

3. Vérification de l'empreinte du répertoire d'installation —— VERSION et app.py doivent être présents tous les deux pour que la suppression ait lieu, sinon le script s'arrête.

> La désinstallation ne supprime que le panneau lui-même : les Agents présents sur les serveurs / appareils cibles ne sont pas affectés (ils apparaîtront hors ligne une fois le panneau supprimé).