Informatique

SSH : se connecter à un serveur en toute sécurité


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 root dans /etc/ssh/sshd_config (PasswordAuthentication no, PermitRootLogin no).
  • Garde OpenSSH à jour.
  • Utilise ssh-agent pour 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.