🔑
infrastructure

SSH

Protocole de communication securise pour acceder a des machines distantes.

Definition

SSH (Secure Shell) est un protocole reseau cryptographique qui permet d'acceder a une machine distante de maniere securisee. Il remplace les anciens protocoles non chiffres comme Telnet et rlogin.

SSH est utilise quotidiennement par les developpeurs et administrateurs systeme pour gerer des serveurs, transferer des fichiers et creer des tunnels securises.

Cas d'usage principaux

  • Administration de serveurs : se connecter a un VPS ou un serveur cloud
  • Deploiement : pousser du code en production via SCP ou rsync
  • Tunnels : rediriger des ports pour acceder a des services internes
  • Git : authentification pour push/pull sur GitHub, GitLab

Authentification

Par mot de passe

Simple mais moins securise. Vulnerable aux attaques brute force.

Par cle publique/privee (recommande)

# Generer une paire de cles (Ed25519, le plus moderne)
ssh-keygen -t ed25519 -C "mon@email.com"

# Copier la cle publique sur le serveur
ssh-copy-id user@serveur.com

# Se connecter (automatique, sans mot de passe)
ssh user@serveur.com

Par certificat SSH

Pour les grandes organisations : une autorite de certification signe les cles utilisateur.

Commandes essentielles

# Connexion basique
ssh user@serveur.com

# Avec une cle specifique
ssh -i ~/.ssh/ma_cle user@serveur.com

# Avec un port non standard
ssh -p 2222 user@serveur.com

# Copier un fichier vers le serveur
scp fichier.txt user@serveur.com:/home/user/

# Copier un dossier entier
scp -r mon-dossier/ user@serveur.com:/home/user/

# Synchroniser avec rsync (plus efficace que scp)
rsync -avz ./dist/ user@serveur.com:/var/www/monsite/

Tunnels SSH (Port Forwarding)

# Local forwarding : acceder a un service distant via un port local
# Acces a PostgreSQL (port 5432) du serveur via localhost:5433
ssh -L 5433:localhost:5432 user@serveur.com

# Remote forwarding : exposer un service local au serveur distant
ssh -R 8080:localhost:3000 user@serveur.com

# Dynamic forwarding (proxy SOCKS)
ssh -D 1080 user@serveur.com

Configuration SSH (~/.ssh/config)

Host prod
    HostName 203.0.113.50
    User deploy
    IdentityFile ~/.ssh/id_prod
    Port 22

Host staging
    HostName 203.0.113.51
    User deploy
    IdentityFile ~/.ssh/id_staging

Ensuite : ssh prod au lieu de ssh -i ~/.ssh/id_prod deploy@203.0.113.50

Securisation SSH

  • Desactiver l'authentification par mot de passe (PasswordAuthentication no)
  • Changer le port par defaut (22 → 2222+)
  • Utiliser Fail2ban pour bloquer les tentatives brute force
  • Utiliser des cles Ed25519 (plus securises que RSA)
  • Configurer AllowUsers pour limiter les utilisateurs autorises

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

Quelle est la difference entre SSH et SFTP ?
SSH est le protocole de communication securise. SFTP (SSH File Transfer Protocol) est un sous-protocole de SSH specialise pour le transfert de fichiers. SFTP utilise SSH pour le chiffrement.
Comment securiser un serveur SSH ?
Desactivez l'authentification par mot de passe, utilisez uniquement les cles SSH (Ed25519), changez le port par defaut, installez Fail2ban, et limitez les utilisateurs autorises avec AllowUsers.
SSH ou VPN pour acceder a un serveur ?
SSH pour l'administration directe de serveurs. VPN pour acceder a un reseau entier d'entreprise. Les deux sont complementaires : on peut utiliser SSH a travers un VPN.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.