VPS KVMVPS KVM

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.

L'empreinte change après une réinstallation

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 machine
  • id_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.

Ouvrez le nouveau port avant de redémarrer SSH

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.

Questions fréquentes

Retour à VPS KVM
Cet article vous a-t-il aidé ?
Offre de bienvenue

Inscris-toi dès maintenant et profite de 10% de réduction sur ta première commande en entrant le code promotionnel : BIENVENUE

Logo LordHostingLordhosting est une SASU au capital de 1 000 €. SIREN 105 383 988 RCS Paris.