15%

É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
01.11.2024

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.

Table des matières

  1. Qu’est-ce que SSH et pourquoi est-ce important ?
  2. Prérequis avant de vous connecter
  3. Comment accéder à votre serveur via SSH
  4. Commandes SSH essentielles pour la gestion du serveur
  5. Renforcement de votre configuration SSH
  6. Authentification par clé SSH : la bonne façon de se connecter
  7. Transfert sécurisé de fichiers avec SCP et SFTP
  8. Conseils de dépannage SSH
  9. Conclusion

1. Qu’est-ce que SSH et pourquoi est-ce important ? {#what-is-ssh}

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 à la ligne de commande à distance — 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 Dedicated Server, SSH est presque certainement votre interface principale pour l’administration quotidienne.

2. Prérequis avant de vous connecter {#prerequisites}

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

PrérequisDé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 la sécurité

> Remarque : Si vous êtes sur un plan Shared Web Hosting, 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 {#accessing-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 (hérité) : Téléchargez PuTTY comme 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 pourquoi vous devriez le changer plus tard), spécifiez-le avec le drapeau -p :

ssh username@your_server_ip -p 2222

Étape 3 : Vérifiez l’empreinte 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 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 type man-in-the-middle).

É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 de votre saisie — 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 {#essential-commands}

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 {#hardening-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 automatisées par force brute. 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 : Changez 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 nombre 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ésactivez 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 : Limitez 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 : Restreignez l’accès SSH à des utilisateurs spécifiques

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

AllowUsers myuser deployuser

Étape 5 : Désactivez 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 des attaques par force brute de mot de passe.

6. Authentification par clé SSH : la bonne façon de se connecter {#ssh-key-authentication}

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 se trouve 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ûr que les mots de passe.

Étape 1 : Générez 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ûr que l’algorithme RSA plus ancien. 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 partagez jamais ceci)
  • ~/.ssh/id_ed25519.pub — votre clé publique (ceci va sur le serveur)

Étape 2 : Copiez la clé publique sur votre serveur

La méthode la plus facile :

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 : Connectez-vous en utilisant 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 : Simplifiez 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 {#file-transfers}

SSH active deux méthodes de transfert de fichiers sécurisés : SCP (Secure Copy Protocol) pour les transferts rapides et SFTP (SSH File Transfer Protocol) pour les sessions interactives.

SCP — Transferts de fichiers rapides

Copiez un fichier de votre machine locale vers le serveur :

scp /path/to/local/file.txt username@your_server_ip:/path/to/remote/directory/

Copiez un fichier du serveur vers votre machine locale :

scp username@your_server_ip:/path/to/remote/file.txt /path/to/local/directory/

Copiez un répertoire entier de manière récursive :

scp -r /path/to/local/folder username@your_server_ip:/path/to/remote/

Utilisation d’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éale si vous préférez ne pas utiliser la ligne de commande pour la gestion des fichiers.

8. Conseils de dépannage SSH {#troubleshooting}

ProblèmeCause probableSolution
Connection refusedSSH ne s’exécute pas, port incorrect ou pare-feu bloquantVérifiez systemctl status sshd, vérifiez le port, vérifiez les règles du pare-feu
Connection timed outPare-feu bloquant la connexionVérifiez que les règles du pare-feu autorisent votre port SSH
Permission denied (publickey)Clé incorrecte, utilisateur incorrect ou clé non autoriséeVérifiez les permissions ~/.ssh/authorized_keys ; vérifiez que la clé correcte est utilisée
###
15%

É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