
Qu’est-ce que SSH ?
SSH (Secure Shell) est un protocole qui permet d’accéder à une machine distante via un canal chiffré. Il sert à administrer des serveurs, transférer des fichiers et créer des tunnels réseau.
Se connecter
ssh [email protected]
ssh -p 2222 [email protected] # port personnalisé
À la première connexion, SSH demande de valider l’empreinte du serveur. Elle est ensuite enregistrée dans ~/.ssh/known_hosts, ce qui permet de détecter un changement suspect.
Authentification par clé
Une paire de clés est plus sûre qu’un mot de passe. La clé privée reste sur ta machine, la clé publique est déposée sur le serveur.
# Générer une clé (Ed25519 recommandé)
ssh-keygen -t ed25519 -C "mon-commentaire"
# Copier la clé publique sur le serveur
ssh-copy-id [email protected]
Protège ta clé privée avec une passphrase, et ne la partage jamais.
Le fichier ~/.ssh/config
Évite de retaper les options à chaque fois :
Host mon-serveur
HostName serveur.exemple.com
User utilisateur
Port 2222
IdentityFile ~/.ssh/id_ed25519
Tu te connectes alors simplement avec ssh mon-serveur.
Transférer des fichiers
scp fichier.txt mon-serveur:/chemin/destination/
rsync -avz dossier/ mon-serveur:/chemin/destination/
Tunnel SSH
Pour accéder à un service distant via un port local :
ssh -L 8080:localhost:80 mon-serveur
Le service est alors disponible sur http://localhost:8080.
Bonnes pratiques
- Utilise des clés plutôt que des mots de passe.
- Désactive la connexion par mot de passe et la connexion
rootdans/etc/ssh/sshd_config(PasswordAuthentication no,PermitRootLogin no). - Garde OpenSSH à jour.
- Utilise
ssh-agentpour ne saisir ta passphrase qu’une fois par session. - Limite l’accès avec un pare-feu ou un outil comme
fail2ban.
À retenir
SSH est un outil de base pour tout administrateur ou développeur. Avec une bonne gestion des clés et un fichier config propre, il devient rapide et sûr à utiliser.