
RENFORCEMENT SSH
Verrouillez SSH sur Debian/Ubuntu en une seule exécution : nouveau port, pas de connexion root, authentification par clé, UFW et Fail2Ban en option.
Lorsque vous exécutez le script, il détecte votre système d'exploitation et affiche les paramètres avant de demander à continuer :

Sur Debian/Ubuntu :
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
Exécutez ceci à tout moment pour obtenir la dernière version du script.
chmod +x ssh_harden.sh script.sh
Si vous sautez cette étape, vous pourriez obtenir « commande introuvable » en exécutant ./ssh_harden.sh. Si cela se produit, utilisez l'étape 5 avec sudo bash ssh_harden.sh à la place.
SSH_PUB_KEY)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
Appuyez sur Entrée pour le chemin par défaut (~/.ssh/id_ed25519). Facultatif : définir une phrase de passe.
Affichez votre clé publique (copiez ceci dans SSH_PUB_KEY) :
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell or Git Bash)
ssh-keygen -t ed25519 -C "[email protected]"
Appuyez sur Entrée pour le chemin par défaut. Facultatif : définir une phrase de passe.
Affichez votre clé publique :
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pubCopiez toute la ligne (commence par ssh-ed25519 ...). C'est votre SSH_PUB_KEY.
Remplacez les valeurs par les vôtres, puis exécutez :
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
Si vous obtenez « commande introuvable », utilisez :
sudo bash ssh_harden.sh
(avec les mêmes SSH_USER=... SSH_PASS=... etc. devant).
Dans un nouveau terminal, connectez-vous en utilisant le nouveau port (pas 22) :
ssh -p 49221 kamaileo@YOUR_SERVER_IP
Utilisez le port et l'utilisateur que vous avez définis. Ne fermez la session d'origine qu'après avoir confirmé que la connexion et sudo fonctionnent.
Utilisez le nouveau port à chaque fois. Après le durcissement, SSH n'est plus sur le port 22. Connectez-vous toujours avec :
ssh -p <YOUR_PORT> <USER>@<SERVER_IP>
Exemple : ssh -p 49221 [email protected]
Enregistrez la sortie du script lorsqu'il se termine. À la fin, le script affiche un résumé avec votre utilisateur, port, commande de connexion et si un mot de passe a été défini. Copiez ou faites une capture d'écran de ce bloc et conservez-le en lieu sûr. Si vous perdez votre clé SSH, oubliez le port ou le mot de passe, cet enregistrement vous aidera à récupérer ou à vous reconnecter (par exemple via console/VNC en utilisant le même utilisateur et mot de passe).
Le script affiche tout ce dont vous avez besoin : utilisateur, port, statut UFW/Fail2Ban et la commande exacte ssh -p .... Pas de conjectures.
Si SSH_USER existe déjà sur le serveur, le script ne crée pas de nouvel utilisateur et ne modifie pas le mot de passe. Il seulement :
sudo~/.ssh/authorized_keys si vous passez SSH_PUB_KEYAinsi, vous pouvez l'exécuter à nouveau pour « durcir uniquement » sans toucher au mot de passe existant.
Sur les OS non pris en charge, le script affiche Bientôt disponible 😊 et se ferme sans rien modifier.
SSH_PUB_KEY pour pouvoir toujours vous connecter après la désactivation de l'authentification par mot de passe.ssh -p PORT user@server.Si ce script vous a fait gagner du temps ou vous a évité un mal de tête, vous pouvez soutenir le projet avec un pourboire unique.
BTC : 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
Merci quand même.
| Variable | Exemple | Ce qu'il fait |
|---|
SSH_USER | kamaileo | Nom d'utilisateur (créé s'il manque ; s'il existe, le mot de passe reste inchangé). |
SSH_PASS | 'YourPass123!' | Mot de passe pour les nouveaux utilisateurs uniquement. Utilisez-en un fort. |
SSH_PORT | 49221 | Port SSH. Vous utiliserez : ssh -p 49221 user@server. |
PORTS | "5060,5061,10000-20000" | Ports supplémentaires pour UFW (optionnel). |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | Votre clé publique. Fortement recommandé pour ne pas être verrouillé. |
| OS | Pris en charge | Testé | Installation git |
|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |