Qu'est-ce que SSH ?
SSH (Secure Shell) est un protocole réseau cryptographique qui permet d'accéder à un serveur distant via une interface en ligne de commande (terminal), de manière totalement sécurisée. Toutes les communications sont chiffrées, ce qui rend SSH résistant aux écoutes clandestines et aux attaques de type "man in the middle".
SSH est l'outil fondamental de tout administrateur système Linux. Il permet de :
- Exécuter des commandes sur le serveur distant
- Transférer des fichiers de manière sécurisée (SFTP, SCP)
- Créer des tunnels chiffrés (SSH tunneling)
- Configurer des clés pour l'authentification sans mot de passe
Comment fonctionne SSH ?
SSH utilise la cryptographie asymétrique pour établir une connexion sécurisée :
- Le client initie la connexion vers le serveur sur le port 22.
- Le serveur envoie sa clé publique (empreinte du serveur).
- Le client vérifie cette empreinte (protection contre l'usurpation).
- Une clé de session symétrique est négociée de manière sécurisée.
- L'authentification se fait par mot de passe ou par paire de clés.
- La session chiffrée est établie.
Authentification par clé SSH
L'authentification par clé est plus sécurisée (et plus pratique) que les mots de passe.
Générer une paire de clés
# Générer une clé ED25519 (recommandée, moderne)
ssh-keygen -t ed25519 -C "mon@email.fr"
# Ou RSA 4096 bits pour une compatibilité maximale
ssh-keygen -t rsa -b 4096 -C "mon@email.fr"
Cela crée deux fichiers :
~/.ssh/id_ed25519— Clé privée (à ne jamais partager)~/.ssh/id_ed25519.pub— Clé publique (à déposer sur le serveur)
Déposer la clé publique sur le serveur
ssh-copy-id utilisateur@votreserveur.com
Ou manuellement, en ajoutant le contenu de .pub dans ~/.ssh/authorized_keys sur le serveur.
Se connecter sans mot de passe
ssh utilisateur@votreserveur.com
Commandes SSH essentielles
Connexion de base
# Connexion standard
ssh utilisateur@votreserveur.com
# Connexion sur un port non standard
ssh -p 2222 utilisateur@votreserveur.com
# Connexion en utilisant une clé spécifique
ssh -i ~/.ssh/ma_cle utilisateur@votreserveur.com
Transfert de fichiers avec SCP
# Envoyer un fichier local vers le serveur
scp fichier.txt utilisateur@serveur:/chemin/destination/
# Récupérer un fichier depuis le serveur
scp utilisateur@serveur:/chemin/fichier.txt ./
# Copier un répertoire complet (récursif)
scp -r mon_dossier/ utilisateur@serveur:/var/www/html/
Tunnel SSH (port forwarding)
# Accéder à phpMyAdmin distant via un tunnel local
ssh -L 8080:localhost:80 utilisateur@serveur.com
# Puis accéder à http://localhost:8080 en local
SSH et hébergement mutualisé
Sur un hébergement mutualisé, l'accès SSH n'est pas toujours disponible par défaut (pour des raisons de sécurité). Chez Gaprod, l'accès SSH peut être activé depuis cPanel → Terminal ou en contactant le support.
L'accès SSH sur un hébergement mutualisé est généralement limité à votre répertoire personnel (/home/votre_compte/).
SSH sur un VPS
Sur un VPS Gaprod, vous disposez d'un accès SSH root complet dès la livraison. Les identifiants vous sont communiqués par email lors de la création de votre VPS. Il est fortement recommandé de :
- Changer le port SSH (de 22 vers un port non standard)
- Désactiver l'authentification par mot de passe (n'utiliser que les clés)
- Désactiver la connexion root directe (
PermitRootLogin no) - Mettre en place Fail2Ban contre les attaques par force brute
Sécuriser votre accès SSH
Ne partagez jamais votre clé privée SSH. En cas de compromission, révoquez immédiatement la clé publique correspondante sur le serveur (~/.ssh/authorized_keys). Activez le pare-feu pour limiter l'accès SSH à vos adresses IP connues si possible.