Se connecter en SSH à son VPS et le configurer
Connectez-vous en SSH à votre VPS depuis Windows, macOS ou Linux, passez aux clés plutôt qu'au mot de passe et durcissez la configuration du serveur.
SSH est la porte d'entrée d'un VPS Linux : tout s'administre depuis cette console chiffrée. Ce guide couvre la première connexion depuis Windows, macOS ou Linux, le passage aux clés, puis les réglages qui rendent l'accès réellement sûr.
⚙️ Prérequis
- Un VPS Linux Lordhosting, démarré depuis le panel
- Son adresse IP et le mot de passe root communiqués à la livraison
- Un terminal : PowerShell, Terminal macOS ou n'importe quel shell Linux
⚙️ 1. Première connexion
La commande est identique sur les trois systèmes :
ssh root@203.0.113.42
Si votre serveur écoute sur un autre port, indiquez-le avec -p :
ssh -p 2222 root@203.0.113.42
À la première connexion, SSH affiche l'empreinte de la machine et demande confirmation. Répondez yes : l'empreinte est mémorisée, et toute modification ultérieure déclenchera un avertissement.
Réinstaller le système régénère les clés du serveur, et SSH refuse alors la connexion. Retirez l'ancienne entrée avec ssh-keygen -R 203.0.113.42, puis reconnectez-vous.
⚙️ 2. Créer une paire de clés
Sur votre machine, pas sur le serveur :
ssh-keygen -t ed25519 -C "poste-principal"
Validez le chemin proposé et saisissez une phrase de passe : elle protège la clé si votre poste est compromis. Deux fichiers sont créés dans ~/.ssh :
id_ed25519- la clé privée, qui ne quitte jamais votre machineid_ed25519.pub- la clé publique, à installer sur le serveur
⚙️ 3. Installer la clé sur le serveur
La méthode la plus simple, depuis Linux ou macOS :
ssh-copy-id root@203.0.113.42
Sous Windows, en PowerShell :
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@203.0.113.42 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Vérifiez ensuite que la connexion se fait sans mot de passe avant de continuer. Cette étape n'est pas optionnelle : la suite désactive le mot de passe.
⚙️ 4. Créer un utilisateur non privilégié
Travailler en root en permanence multiplie les dégâts d'une erreur de frappe :
adduser alex
usermod -aG sudo alex
rsync --archive --chown=alex:alex ~/.ssh /home/alex
La dernière ligne recopie votre clé pour le nouvel utilisateur. Testez ssh alex@203.0.113.42, puis sudo -v, avant de passer à la suite.
⚙️ 5. Durcir la configuration du serveur
Éditez /etc/ssh/sshd_config :
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers alex
Ces six lignes suppriment l'essentiel de la surface d'attaque : plus de root direct, plus de mot de passe, un port hors des balayages courants.
Si UFW est actif, sudo ufw allow 2222/tcp avant de recharger le service - sinon la prochaine connexion sera refusée. Voir configurer le pare-feu UFW.
Rechargez ensuite le service, sans fermer votre session :
sudo sshd -t && sudo systemctl reload ssh
sshd -t valide la syntaxe : s'il signale une erreur, corrigez avant de recharger. Ouvrez un second terminal pour tester la nouvelle configuration ; votre session en cours reste votre filet de sécurité.
⚙️ 6. Simplifier avec un fichier de configuration
Sur votre poste, ~/.ssh/config évite de retaper les options :
Host vps
HostName 203.0.113.42
User alex
Port 2222
IdentityFile ~/.ssh/id_ed25519
La connexion devient ssh vps. Le même alias fonctionne pour scp et sftp.
⚙️ 7. Résoudre les erreurs courantes
Permission denied (publickey): la clé publique n'est pas dans~/.ssh/authorized_keys, ou les droits sont trop larges (chmod 700 ~/.ssh,chmod 600 ~/.ssh/authorized_keys).Connection refused: service arrêté, mauvais port, ou pare-feu. Passez par la console VNC du panel.Connection timed out: l'adresse est fausse, ou aucune règle n'autorise le port.REMOTE HOST IDENTIFICATION HAS CHANGED: réinstallation, ou changement de machine.ssh-keygen -R <adresse>.
⚙️ Configuration prête à copier-coller
Plutôt que de modifier sshd_config ligne par ligne, déposez un fichier de surcharge : il survit aux mises à jour du paquet et se retire d'un seul rm si besoin.
# /etc/ssh/sshd_config.d/99-durcissement.conf
Port 2222
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey
MaxAuthTries 3
MaxSessions 4
LoginGraceTime 20
AllowUsers alex
X11Forwarding no
AllowAgentForwarding no
PrintMotd no
ClientAliveInterval 300
ClientAliveCountMax 2
Le script qui pose ce fichier, ouvre le port et valide avant de recharger - remplacez les deux variables :
#!/usr/bin/env bash
# Durcissement SSH prêt à l'emploi. À exécuter en root, sans fermer votre session.
set -euo pipefail
UTILISATEUR="alex" # le compte autorisé à se connecter
PORT_SSH="2222" # le nouveau port
# Le port doit être ouvert AVANT le rechargement du service
command -v ufw >/dev/null && ufw allow ${PORT_SSH}/tcp comment 'SSH'
cat > /etc/ssh/sshd_config.d/99-durcissement.conf <<CONFIG
Port ${PORT_SSH}
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey
MaxAuthTries 3
LoginGraceTime 20
AllowUsers ${UTILISATEUR}
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
CONFIG
# Garde-fou : une erreur de syntaxe arrête le script avant le rechargement
sshd -t
systemctl reload ssh
echo "Rechargé. Testez maintenant depuis un SECOND terminal :"
echo " ssh -p ${PORT_SSH} ${UTILISATEUR}@\$(curl -s ifconfig.me)"
Côté poste de travail, ce bloc dans ~/.ssh/config évite de retaper les options à chaque connexion :
Host vps
HostName 203.0.113.42
User alex
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
ServerAliveInterval 60
La connexion devient ssh vps, et scp fichier vps:/tmp/ fonctionne avec le même alias.
✅ Conclusion
Vous vous connectez par clé, sous un compte non privilégié, sur un service qui refuse les mots de passe. C'est la base de tout le reste : poursuivez avec la sécurisation complète du VPS et le pare-feu UFW.
Nos VPS Linux sont livrés avec un accès root, une console VNC de secours et le choix de la distribution au déploiement.

