Presque chaque nouveau VPS démarre de la même façon : vous vous connectez en root, installez deux ou trois choses, et un mois plus tard vous êtes toujours root. Ça marche jusqu'au jour où un script collé supprime le mauvais répertoire. Mettre en place un utilisateur normal avec sudo prend cinq minutes, et l'ordre compte plus que les commandes — se tromper, c'est rester dehors.
Voici la séquence sûre pour Ubuntu 22.04/24.04 et Debian 12.
1. Créer l'utilisateur
En root :
adduser deploy
usermod -aG sudo deploy
adduser demande un mot de passe et quelques informations facultatives (appuyez simplement sur Entrée). Choisissez un vrai mot de passe : vous le taperez pour sudo. Sur une Debian minimale, lancez d'abord apt install -y sudo si la commande manque.
2. Lui donner votre clé SSH
Le plus simple est de copier les clés de root en gardant le bon propriétaire :
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Si vous préférez le faire à la main :
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
De mauvaises permissions sont la raison classique d'un échec silencieux de la connexion par clé. SSH ignore un authorized_keys modifiable par d'autres utilisateurs.
3. Tester avant de changer quoi que ce soit
Gardez la session root ouverte. Dans un nouveau terminal :
ssh -p 22 deploy@203.0.113.10
sudo whoami
Mettez votre IP et votre port — sur une offre NAT, c'est votre port SSH personnel de l'espace client. Si sudo whoami affiche root, tout va bien. Si la connexion échoue, vous avez encore la fenêtre root pour corriger.
4. Couper la connexion root
Maintenant, fermez la porte. Au lieu de modifier la configuration principale, créez un petit fichier complémentaire :
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t vérifie d'abord la syntaxe. Une configuration cassée plus un reload, c'est exactement comme ça qu'on finit dans la console. PasswordAuthentication no n'a de sens qu'une fois la connexion par clé fonctionnelle pour le nouvel utilisateur — ce que vous venez de tester.
Ouvrez encore un terminal et vérifiez que root est refusé et que deploy entre toujours. Fermez ensuite l'ancienne session root.
5. Optionnel : sudo sans mot de passe pour l'automatisation
Si un script de déploiement a besoin de sudo sans question, donnez-lui exactement ça et rien de plus :
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Honnêtement, NOPASSWD: ALL est tentant, mais une clé volée devient alors root. Limitez-le aux commandes que l'automatisation exécute.
Si quelque chose tourne mal
La console web de votre espace client ne dépend ni de SSH ni du pare-feu. Connectez-vous-y, corrigez le fichier dans /etc/ssh/sshd_config.d/, rechargez, terminé. Nous avons détaillé toute la procédure dans comment revenir sur un VPS verrouillé.
Et ensuite
- Passez vraiment à la connexion par clé uniquement : authentification par clé SSH.
- Calmez le bruit des attaques par force brute : fail2ban.
- Faites le tour du reste avec la checklist de sécurité d'un nouveau VPS.
Les options d'accès de chaque offre sont dans la documentation d'accès. Même un Nano à $3 mérite un utilisateur non root — c'est le gain de sécurité le moins cher qui soit.
Commentaires
Pas encore de commentaires. Soyez le premier.