Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Linux Sécurité Serveurs virtuels

SSH sur l’hébergement virtuel : Le guide complet de la gestion sécurisée des serveurs

Secure Shell (SSH) est l’un des outils les plus puissants et essentiels dans l’arsenal de tout administrateur système. Que vous gériez un petit projet personnel ou que vous exécutiez une application web en production, SSH vous offre un accès distant chiffré et authentifié à votre serveur — vous permettant d’exécuter des commandes, de transférer des fichiers et de configurer des services sans jamais toucher à la machine physique.

Ce guide complet couvre tout ce que vous devez savoir sur l’utilisation de SSH dans un environnement d’hébergement virtuel : de votre première connexion au renforcement de votre configuration contre les attaques par force brute.

1. Qu’est-ce que SSH et pourquoi est-ce important ?

SSH (Secure Shell) est un protocole réseau cryptographique qui crée un tunnel chiffré entre votre machine locale (le client) et un serveur distant. Contrairement aux protocoles plus anciens tels que Telnet ou FTP, SSH chiffre tout le trafic — y compris les identifiants — ce qui rend pratiquement impossible pour un attaquant d’intercepter les données sensibles en transit.

SSH est la méthode standard pour :

  • L’accès à distance à la ligne de commande — exécuter n’importe quelle commande Linux/Unix sur votre serveur comme si vous étiez assis devant
  • Les transferts de fichiers sécurisés — déplacer des fichiers entre machines en utilisant SCP ou SFTP
  • Le tunneling et la redirection de ports — acheminer d’autres protocoles de manière sécurisée via une connexion SSH
  • Les déploiements automatisés et les scripts — les pipelines CI/CD, les tâches cron et les scripts de sauvegarde dépendent tous de SSH
  • La gestion des serveurs web et des applications — configurer Nginx, Apache, MySQL et bien d’autres

Si vous exécutez un plan VPS Hosting ou un Serveur Dédié, SSH est presque certainement votre interface principale pour l’administration quotidienne.

2. Prérequis avant de vous connecter

Avant d’établir votre première connexion SSH, assurez-vous d’avoir les éléments suivants :

ExigenceDétails
Adresse IP du serveurFournie dans votre panneau de contrôle d’hébergement ou votre e-mail de bienvenue
Nom d’utilisateur SSHGénéralement root pour un VPS neuf, ou un utilisateur personnalisé sur les environnements gérés
Mot de passe SSH ou cléDéfini lors de l’approvisionnement ou envoyé par e-mail
Client SSHIntégré à Linux/macOS ; PuTTY ou Windows Terminal sur Windows
Port SSHLa valeur par défaut est 22, mais peut être personnalisée pour des raisons de sécurité

> Remarque : Si vous êtes sur un plan Hébergement Web Partagé, l’accès SSH peut être restreint ou nécessiter une activation explicite dans votre panneau de contrôle. Vérifiez auprès de votre fournisseur.

3. Comment accéder à votre serveur via SSH

Étape 1 : Ouvrez votre Terminal ou client SSH

  • Linux / macOS : Ouvrez l’application Terminal intégrée
  • Windows 10/11 : Utilisez Windows Terminal, PowerShell ou Command Prompt (tous incluent un client SSH natif)
  • Windows (legacy) : Téléchargez PuTTY en tant que client SSH gratuit

Étape 2 : Connectez-vous à votre serveur

Utilisez la syntaxe suivante :

ssh username@your_server_ip

Exemple :

ssh root@203.0.113.45

Si votre serveur utilise un port non standard (plus d’informations sur les raisons pour lesquelles vous devriez le modifier plus tard), spécifiez-le avec le drapeau -p :

ssh username@your_server_ip -p 2222

Étape 3 : Vérifiez l’empreinte digitale de l’hôte

La première fois que vous vous connectez à un nouveau serveur, SSH affichera un message comme celui-ci :

The authenticity of host '203.0.113.45 (203.0.113.45)' can't be established.
ED25519 key fingerprint is SHA256:abc123...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Tapez yes et appuyez sur Entrée. SSH enregistrera l’empreinte digitale du serveur dans votre fichier ~/.ssh/known_hosts. Lors des connexions futures, il vérifiera automatiquement l’identité du serveur — vous alertant si quelque chose change (ce qui pourrait indiquer une attaque de l’homme du milieu).

Étape 4 : Authentifiez-vous

Entrez votre mot de passe lorsque vous y êtes invité. Notez que le terminal n’affichera aucun caractère au fur et à mesure que vous tapez — c’est un comportement normal pour des raisons de sécurité.

Une fois authentifié, vous verrez l’invite de commande de votre serveur, généralement quelque chose comme :

root@hostname:~#

Vous êtes maintenant connecté et pouvez commencer à gérer votre serveur.

4. Commandes SSH essentielles pour la gestion du serveur

Une fois connecté, vous avez un accès complet à la ligne de commande Linux. Voici les commandes les plus importantes pour gérer un environnement d’hébergement virtuel :

Opérations sur les fichiers et répertoires

# List files and directories with details
ls -la

# Change to a specific directory
cd /var/www/html

# Create a new directory
mkdir my_project

# Remove a file
rm filename.txt

# Remove a directory and its contents
rm -rf /path/to/directory

# Copy a file
cp source.txt destination.txt

# Move or rename a file
mv oldname.txt newname.txt

Affichage et édition de fichiers

# View file contents
cat /etc/nginx/nginx.conf

# View large files page by page
less /var/log/nginx/access.log

# Edit a file with nano (beginner-friendly)
nano /etc/ssh/sshd_config

# Edit a file with vim (advanced)
vim /etc/nginx/sites-available/default

Surveillance du système

# Check disk usage (human-readable)
df -h

# Check memory usage
free -m

# Real-time process monitor
top

# Enhanced process monitor (install if needed)
htop

# Check running services
systemctl status nginx

# View recent system logs
journalctl -xe

Gestion des paquets (Ubuntu/Debian)

# Update package list
sudo apt update

# Upgrade installed packages
sudo apt upgrade -y

# Install a package
sudo apt install package-name

# Remove a package
sudo apt remove package-name

Diagnostics réseau

# Check open ports and listening services
ss -tulnp

# Test connectivity to a host
ping google.com

# Trace the network route to a host
traceroute google.com

# Check your server's public IP
curl ifconfig.me

5. Renforcement de votre configuration SSH

La configuration SSH par défaut est fonctionnelle mais pas optimalement sécurisée. Puisque SSH est exposé à Internet, c’est une cible constante pour les attaques par force brute automatisées. Les étapes suivantes réduisent considérablement votre surface d’attaque.

Tous les changements sont effectués dans le fichier de configuration du démon SSH :

sudo nano /etc/ssh/sshd_config

Après avoir apporté des modifications, rechargez toujours le service SSH :

sudo systemctl reload sshd

> ⚠️ Avertissement critique : Avant de modifier la configuration SSH, gardez toujours une deuxième session de terminal ouverte et connectée. Si vous mal configurez SSH et perdez l’accès, vous devrez peut-être utiliser la console d’urgence de votre fournisseur d’hébergement pour récupérer.

Étape 1 : Modifier le port SSH par défaut

Le port 22 est le port SSH par défaut et est constamment analysé par des bots automatisés. Le changer pour un port élevé et non standard n’arrêtera pas un attaquant déterminé, mais cela réduit considérablement le bruit des analyses automatisées.

Dans /etc/ssh/sshd_config, trouvez et modifiez :

# Before:
#Port 22

# After:
Port 2222

Supprimez le # pour décommenter la ligne et définissez votre port choisi (utilisez n’importe quel numéro entre 1024 et 65535 qui n’est pas déjà utilisé).

Important : Si vous exécutez un pare-feu (et vous devriez le faire), autorisez le nouveau port avant de recharger SSH :

# UFW (Ubuntu/Debian)
sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp

# firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

Étape 2 : Désactiver la connexion root

Se connecter directement en tant que root via SSH est un risque de sécurité important. À la place, créez un compte utilisateur régulier et utilisez sudo pour les tâches administratives.

Dans /etc/ssh/sshd_config :

# Before:
PermitRootLogin yes

# After:
PermitRootLogin no

Avant de désactiver la connexion root, assurez-vous d’avoir :

  1. Créé un utilisateur non-root : adduser myuser
  2. Accordé les privilèges sudo : usermod -aG sudo myuser
  3. Vérifié que vous pouvez vous connecter en tant que cet utilisateur dans une session séparée

Étape 3 : Limiter les tentatives de connexion

Ajoutez ces directives pour réduire l’efficacité des attaques par force brute :

# Maximum authentication attempts per connection
MaxAuthTries 3

# Maximum concurrent unauthenticated connections
MaxStartups 10:30:60

# Disconnect idle sessions after 5 minutes
ClientAliveInterval 300
ClientAliveCountMax 2

Étape 4 : Restreindre l’accès SSH à des utilisateurs spécifiques

Si seuls certains utilisateurs ont besoin d’accès SSH, mettez-les en liste blanche explicitement :

AllowUsers myuser deployuser

Étape 5 : Désactiver l’authentification par mot de passe (après configuration des clés SSH)

Une fois l’authentification par clé SSH configurée (voir la section suivante), désactivez complètement la connexion par mot de passe :

PasswordAuthentication no
ChallengeResponseAuthentication no

Ce seul changement élimine toute la classe d’attaques par force brute de mot de passe.

6. Authentification par clé SSH : La bonne façon de se connecter

Les clés SSH sont des paires de clés cryptographiques — une clé privée qui reste sur votre machine locale et une clé publique qui réside sur le serveur. L’authentification fonctionne en prouvant que vous possédez la clé privée sans jamais la transmettre. C’est beaucoup plus sécurisé que les mots de passe.

Étape 1 : Générer une paire de clés SSH

Exécutez ceci sur votre machine locale (pas sur le serveur) :

ssh-keygen -t ed25519 -C "your_email@example.com"

> Pourquoi Ed25519 ? C’est plus rapide et plus sécurisé que l’ancien algorithme RSA. Si votre système ne le supporte pas, utilisez ssh-keygen -t rsa -b 4096 à la place.

Vous serez invité à :

  • Choisir un emplacement de fichier — appuyez sur Entrée pour accepter la valeur par défaut (~/.ssh/id_ed25519)
  • Définir une phrase de passe — fortement recommandé ; cela chiffre votre clé privée pour qu’elle soit inutile si elle est volée

Cela crée deux fichiers :

    ~/.ssh/id_ed25519 — votre clé privée (ne la partagez jamais)
    ~/.ssh/id_ed25519.pub — votre clé publique (celle-ci va sur le serveur)
    
    Étape 2 : Copier la clé publique sur votre serveur
    La méthode la plus simple :
    ssh-copy-id username@your_server_ip
    Ou manuellement, si ssh-copy-id n’est pas disponible :
    # On your local machine, display your public key:
    cat ~/.ssh/id_ed25519.pub
    
    # On the server, add it to the authorized keys file:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "your_public_key_content" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    Étape 3 : Se connecter avec votre clé SSH
    # Standard port
    ssh username@your_server_ip
    
    # Custom port
    ssh username@your_server_ip -p 2222
    SSH utilisera automatiquement votre clé. Si vous avez défini une phrase de passe, vous serez invité à la saisir (c’est votre phrase de passe locale, pas votre mot de passe serveur).
    Étape 4 : Simplifier les connexions avec un fichier de configuration SSH
    Si vous gérez plusieurs serveurs, créez un fichier de configuration SSH pour éviter de taper de longues commandes :
    nano ~/.ssh/config
    Ajoutez des entrées comme ceci :
    Host myserver
        HostName 203.0.113.45
        User myuser
        Port 2222
        IdentityFile ~/.ssh/id_ed25519
    
    Host staging
        HostName 203.0.113.100
        User deploy
        Port 22
        IdentityFile ~/.ssh/id_ed25519
    Maintenant, vous pouvez vous connecter simplement avec :
    ssh myserver
    7. Transfert sécurisé de fichiers avec SCP et SFTP
    SSH permet deux méthodes de transfert de fichiers sécurisé : SCP (Secure Copy Protocol) pour les transferts rapides et SFTP (SSH File Transfer Protocol) pour les sessions interactives.
    SCP — Transferts rapides de fichiers
    Copier un fichier de votre machine locale vers le serveur :
    scp /path/to/local/file.txt username@your_server_ip:/path/to/remote/directory/
    Copier un fichier du serveur vers votre machine locale :
    scp username@your_server_ip:/path/to/remote/file.txt /path/to/local/directory/
    Copier un répertoire entier de manière récursive :
    scp -r /path/to/local/folder username@your_server_ip:/path/to/remote/
    Utiliser un port personnalisé :
    scp -P 2222 file.txt username@your_server_ip:/destination/
    > Remarque : SCP utilise -P (majuscule) pour le port, contrairement à SSH qui utilise -p (minuscule).
    SFTP — Gestion interactive des fichiers
    SFTP fournit un shell interactif pour parcourir et gérer les fichiers distants :
    sftp username@your_server_ip
    Une fois connecté, utilisez ces commandes :
    # List remote files
    ls
    
    # List local files
    lls
    
    # Change remote directory
    cd /var/www/html
    
    # Change local directory
    lcd ~/Downloads
    
    # Upload a file
    put localfile.txt
    
    # Download a file
    get remotefile.txt
    
    # Exit
    bye
    Pour un client SFTP graphique, des outils comme FileZilla ou Cyberduck se connectent via SFTP et fournissent une interface glisser-déposer — idéal si vous préférez ne pas utiliser la ligne de commande pour la gestion des fichiers.
    8. Conseils de dépannage SSH
    
    
    
    
    Problème
    Cause probable
    Solution
    
    
    
    
    Connection refused
    SSH non exécuté, mauvais port ou pare-feu bloquant
    Vérifiez systemctl status sshd, vérifiez le port, vérifiez les règles du pare-feu
    
    
    Connection timed out
    Pare-feu bloquant la connexion
    Vérifiez que les règles du pare-feu autorisent votre port SSH
    
    
    Permission denied (publickey)
    Mauvaise clé, mauvais utilisateur ou clé non autorisée
    Vérifiez les permissions ~/.ssh/authorized_keys ; vérifiez que la bonne clé est utilisée
    
    
    Host key verification failed
    Empreinte digitale du serveur modifiée
    Supprimez l’ancienne entrée : ssh-keygen -R your_server_ip
    
    
    Too many authentication failures
    SSH a essayé trop de clés
    Spécifiez la clé explicitement : ssh -i ~/.ssh/id_ed25519 user@host
    
    
    Verrouillé après modification de la configuration
    Erreur de configuration SSH
    Utilisez la console d’urgence/VNC de votre fournisseur d’hébergement pour corriger sshd_config
    
    
    
    
    Activer le mode verbeux pour le débogage
    Lors du dépannage des problèmes de connexion, ajoutez -v (ou -vvv pour une verbosité maximale) à votre commande SSH :
    ssh -v username@your_server_ip
    Cela affiche des informations détaillées sur le processus de négociation, vous aidant à identifier exactement où la connexion échoue.
    9. Conclusion
    SSH est l’épine dorsale de l’administration des serveurs distants. Le maîtriser — des connexions de base à l’authentification par clé et au durcissement de la configuration — est une compétence fondamentale pour quiconque gère un environnement d’hébergement virtuel.
    Pour récapituler les meilleures pratiques clés :
    
    ✅ Changez le port SSH par défaut de 22 à un port non standard
    ✅ Désactivez la connexion root et utilisez un utilisateur non-root dédié avec sudo
    ✅ Utilisez l’authentification par clé SSH au lieu de mots de passe
    ✅ Désactivez l’authentification par mot de passe une fois les clés configurées
    ✅ Maintenez votre logiciel client et serveur SSH à jour
    ✅ Surveillez régulièrement les journaux d’authentification : tail -f /var/log/auth.log

    Que vous exécutiez un VPS avec cPanel ou que vous gériez un Serveur Dédié bare-metal, ces pratiques SSH maintiendront votre environnement sécurisé et votre flux de travail efficace.

    Si vous recherchez un environnement d’hébergement fiable où vous avez un accès SSH complet et un contrôle root, explorez AlexHost VPS Hosting — avec des plans conçus pour les développeurs, les entreprises et tout ce qui se trouve entre les deux. Et si vos besoins en infrastructure s’étendent à la sécurité SSL pour vos domaines, n’oubliez pas de consulter Certificats SSL pour garder votre trafic web chiffré de bout en bout.

    *Vous avez des questions sur la configuration SSH ou la gestion des serveurs ? L’équipe d’assistance AlexHost est disponible 24h/24 et 7j/7 pour vous aider à tirer le meilleur parti de votre environnement d’hébergement.*