Aller au contenu principal
Dev Serein
Sécurité

SSH — commandes essentielles

Les commandes SSH essentielles pour se connecter à distance, gérer les clés, ssh-agent, transferts de fichiers, tunnels, ProxyJump, configuration client, debug et sécurité.

122commandesMis à jour le25 août 2026NiveauIntermédiaire
Toutes les cheatsheets

Connexion

9 commandes
CommandeDescriptionExempleRisque
sshOuvre une connexion SSH vers une machine distante avec l'utilisateur courant lorsque celui-ci n'est pas précisé.
ssh serveur.example.com
Sûr
ssh utilisateur@hoteOuvre une connexion SSH en utilisant explicitement un utilisateur distant.
ssh alice@serveur.example.com
Sûr
ssh -pSe connecte à un serveur SSH utilisant un port différent du port configuré par défaut.
ssh -p 2222 alice@serveur.example.com
Sûr
ssh -iUtilise explicitement une clé privée particulière pour l'authentification.
ssh -i ~/.ssh/id_ed25519 alice@serveur.example.com
Sûr
ssh -4Force l'utilisation d'IPv4 pour la connexion.
ssh -4 alice@serveur.example.com
Sûr
ssh -6Force l'utilisation d'IPv6 pour la connexion.
ssh -6 alice@serveur.example.com
Sûr
ssh -TDésactive l'allocation d'un pseudo-terminal. Utile pour certaines commandes automatisées ou tests de connexion.
ssh -T git@github.com
Sûr
ssh -tForce l'allocation d'un pseudo-terminal côté distant.
ssh -t alice@serveur.example.com 'sudo systemctl status nginx'
Sûr
exitFerme normalement la session distante et revient au terminal local.
exit
Sûr

Commandes distantes

6 commandes
CommandeDescriptionExempleRisque
ssh hote commandeExécute une commande distante sans ouvrir de shell interactif permanent.
ssh alice@serveur.example.com 'hostname'
Sûr
ssh hote 'uptime'Exécute une commande simple sur la machine distante et retourne son résultat.
ssh alice@serveur.example.com 'uptime'
Sûr
ssh hote 'df -h'Permet par exemple de contrôler rapidement l'espace disque d'une machine distante.
ssh alice@serveur.example.com 'df -h'
Sûr
ssh hote 'systemctl status'Permet d'interroger l'état d'un service distant lorsque l'utilisateur possède les permissions nécessaires.
ssh alice@serveur.example.com 'systemctl status nginx'
Sûr
ssh -t hote sudoForce un terminal lorsque sudo distant nécessite une interaction.
ssh -t alice@serveur.example.com 'sudo systemctl restart nginx'
Attention
ssh hote bash -sExécute un script local sur une machine distante en l'envoyant via l'entrée standard.
ssh alice@serveur.example.com 'bash -s' < deploy.sh
Attention

Clés SSH

7 commandes
CommandeDescriptionExempleRisque
ssh-keygen -t ed25519Génère une paire de clés Ed25519, adaptée à la plupart des nouveaux usages SSH.
ssh-keygen -t ed25519
Sûr
ssh-keygen -t ed25519 -CGénère une clé Ed25519 avec un commentaire permettant de mieux l'identifier.
ssh-keygen -t ed25519 -C 'alice@laptop'
Sûr
ssh-keygen -fChoisit explicitement le fichier dans lequel enregistrer une nouvelle paire de clés.
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_production
Sûr
ssh-keygen -pModifie la passphrase d'une clé privée existante.
ssh-keygen -p -f ~/.ssh/id_ed25519
Attention
ssh-keygen -yExtrait la clé publique correspondant à une clé privée.
ssh-keygen -y -f ~/.ssh/id_ed25519
Sûr
ssh-keygen -lfAffiche l'empreinte d'une clé publique ou privée.
ssh-keygen -lf ~/.ssh/id_ed25519.pub
Sûr
ssh-keygen -RSupprime une ancienne clé d'hôte du fichier known_hosts. À utiliser uniquement après avoir vérifié pourquoi l'empreinte du serveur a changé.
ssh-keygen -R serveur.example.com
Attention

Installer une clé

3 commandes
CommandeDescriptionExempleRisque
ssh-copy-idCopie automatiquement la clé publique locale dans authorized_keys sur la machine distante.
ssh-copy-id alice@serveur.example.com
Sûr
ssh-copy-id -iChoisit explicitement la clé publique à installer sur la machine distante.
ssh-copy-id -i ~/.ssh/id_ed25519.pub alice@serveur.example.com
Sûr
cat clé.pub | sshMéthode manuelle permettant d'ajouter une clé publique dans authorized_keys lorsque ssh-copy-id n'est pas disponible.
cat ~/.ssh/id_ed25519.pub | ssh alice@serveur.example.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
Attention

ssh-agent

7 commandes
CommandeDescriptionExempleRisque
eval "$(ssh-agent -s)"Démarre un agent SSH dans le shell courant et configure les variables nécessaires pour l'utiliser.
eval "$(ssh-agent -s)"
Sûr
ssh-addAjoute la clé privée par défaut à l'agent SSH.
ssh-add
Sûr
ssh-add <clé>Ajoute explicitement une clé privée particulière dans ssh-agent.
ssh-add ~/.ssh/id_ed25519_production
Sûr
ssh-add -lListe les empreintes des clés actuellement chargées dans l'agent.
ssh-add -l
Sûr
ssh-add -LAffiche les clés publiques correspondant aux identités chargées dans l'agent.
ssh-add -L
Sûr
ssh-add -dRetire une clé particulière de l'agent.
ssh-add -d ~/.ssh/id_ed25519_production
Sûr
ssh-add -DRetire toutes les identités actuellement chargées dans l'agent.
ssh-add -D
Attention

Empreintes hôtes

5 commandes
CommandeDescriptionExempleRisque
known_hostsFichier contenant les clés d'hôtes SSH déjà rencontrées et approuvées.
~/.ssh/known_hosts
Sûr
ssh-keyscanRécupère les clés publiques proposées par un serveur SSH. Cette commande seule ne constitue pas une validation de l'identité du serveur.
ssh-keyscan serveur.example.com
Attention
ssh-keyscan >> known_hostsAjoute automatiquement une clé récupérée à known_hosts. À éviter sans vérification indépendante de l'empreinte.
ssh-keyscan serveur.example.com >> ~/.ssh/known_hosts
Danger
ssh-keygen -FRecherche une entrée correspondant à un hôte dans known_hosts.
ssh-keygen -F serveur.example.com
Sûr
ssh-keygen -RSupprime les entrées correspondant à un hôte dans known_hosts.
ssh-keygen -R serveur.example.com
Attention

Permissions

5 commandes
CommandeDescriptionExempleRisque
chmod 700 ~/.sshRestreint l'accès au répertoire SSH personnel au propriétaire.
chmod 700 ~/.ssh
Sûr
chmod 600 clé privéeRestreint une clé privée en lecture et écriture à son propriétaire.
chmod 600 ~/.ssh/id_ed25519
Sûr
chmod 644 clé publiquePermissions classiques pour une clé publique locale.
chmod 644 ~/.ssh/id_ed25519.pub
Sûr
chmod 600 authorized_keysRestreint le fichier contenant les clés autorisées de l'utilisateur.
chmod 600 ~/.ssh/authorized_keys
Sûr
chown -R ~/.sshCorrige le propriétaire de l'arborescence SSH lorsqu'elle a été créée accidentellement par un autre utilisateur.
sudo chown -R alice:alice ~/.ssh
Attention

Configuration client

9 commandes
CommandeDescriptionExempleRisque
~/.ssh/configFichier de configuration utilisateur permettant de définir des alias et paramètres SSH permanents.
~/.ssh/config
Sûr
HostDéclare un alias ou un motif d'hôte dans la configuration SSH.
Host production
Sûr
HostNameDéfinit le véritable nom DNS ou l'adresse IP correspondant à un alias SSH.
HostName serveur.example.com
Sûr
UserDéfinit l'utilisateur distant utilisé par défaut pour l'hôte.
User alice
Sûr
PortDéfinit le port SSH à utiliser pour l'hôte.
Port 2222
Sûr
IdentityFileDéfinit la clé privée utilisée pour la connexion.
IdentityFile ~/.ssh/id_ed25519_production
Sûr
IdentitiesOnly yesDemande à SSH d'utiliser uniquement les identités explicitement configurées plutôt que toutes celles disponibles dans l'agent.
IdentitiesOnly yes
Sûr
ServerAliveIntervalConfigure l'envoi périodique de messages permettant de détecter certaines connexions devenues inactives.
ServerAliveInterval 60
Sûr
ServerAliveCountMaxDéfinit combien de réponses manquantes sont tolérées avant d'abandonner la connexion.
ServerAliveCountMax 3
Sûr

Bastion & ProxyJump

4 commandes
CommandeDescriptionExempleRisque
ssh -JSe connecte à une cible SSH en passant d'abord par un serveur bastion ou jump host.
ssh -J alice@bastion.example.com admin@serveur-prive
Sûr
ssh -J avec portSpécifie également le port utilisé par le bastion.
ssh -J alice@bastion.example.com:2222 admin@serveur-prive
Sûr
plusieurs jump hostsProxyJump peut enchaîner plusieurs hôtes intermédiaires.
ssh -J alice@jump1.example.com,bob@jump2.example.com admin@serveur-prive
Attention
ProxyJumpConfigure le bastion directement dans ~/.ssh/config afin de simplifier les connexions répétées.
ProxyJump bastion
Sûr

SCP

5 commandes
CommandeDescriptionExempleRisque
scp local vers distantCopie un fichier local vers une machine distante via SSH.
scp fichier.txt alice@serveur.example.com:/tmp/
Sûr
scp distant vers localCopie un fichier distant vers la machine locale.
scp alice@serveur.example.com:/var/log/app.log ./app.log
Sûr
scp -rCopie récursivement un dossier.
scp -r ./site alice@serveur.example.com:/var/www/
Attention
scp -PUtilise un port SSH particulier. Attention : l'option SCP utilise un P majuscule.
scp -P 2222 fichier.txt alice@serveur.example.com:/tmp/
Sûr
scp -iUtilise explicitement une clé privée.
scp -i ~/.ssh/id_ed25519 fichier.txt alice@serveur:/tmp/
Sûr

SFTP

8 commandes
CommandeDescriptionExempleRisque
sftpOuvre une session interactive de transfert de fichiers utilisant SSH.
sftp alice@serveur.example.com
Sûr
sftp -PUtilise un port SSH spécifique.
sftp -P 2222 alice@serveur.example.com
Sûr
getTélécharge un fichier distant depuis une session SFTP.
get archive.tar.gz
Sûr
putEnvoie un fichier local vers le serveur depuis une session SFTP.
put build.tar.gz
Attention
lsListe les fichiers du répertoire distant courant dans une session SFTP.
ls
Sûr
llsListe les fichiers du répertoire local courant depuis SFTP.
lls
Sûr
lcdChange le répertoire local dans une session SFTP.
lcd ./downloads
Sûr
cdChange le répertoire distant dans une session SFTP.
cd /var/backups
Sûr

Rsync via SSH

5 commandes
CommandeDescriptionExempleRisque
rsync -avSynchronise efficacement un dossier vers une machine distante via SSH.
rsync -av ./site/ alice@serveur:/var/www/site/
Attention
rsync -avzActive également la compression pendant le transfert.
rsync -avz ./site/ alice@serveur:/var/www/site/
Attention
rsync --progressAffiche la progression des transferts.
rsync -av --progress ./backup/ alice@serveur:/backup/
Sûr
rsync --dry-runSimule l'opération sans effectuer réellement les changements. Recommandé avant les synchronisations complexes.
rsync -av --dry-run ./site/ alice@serveur:/var/www/site/
Sûr
rsync --deleteSupprime sur la destination les fichiers absents de la source. Une mauvaise destination peut entraîner une perte de données importante.
rsync -av --delete ./site/ alice@serveur:/var/www/site/
Danger

Tunnel local

5 commandes
CommandeDescriptionExempleRisque
ssh -LCrée un port local redirigé à travers SSH vers une destination accessible depuis le serveur distant.
ssh -L 5433:localhost:5432 alice@serveur.example.com
Sûr
tunnel PostgreSQLExpose localement un PostgreSQL distant sans publier directement son port sur Internet.
ssh -L 5433:localhost:5432 alice@db.example.com
Sûr
tunnel service internePermet d'accéder localement à un service visible uniquement depuis le réseau distant.
ssh -L 8080:service-interne:80 alice@bastion.example.com
Sûr
ssh -N -LCrée uniquement le tunnel sans exécuter de commande distante.
ssh -N -L 5433:localhost:5432 alice@serveur.example.com
Sûr
ssh -f -N -LPlace la connexion SSH de tunnel en arrière-plan après l'authentification.
ssh -f -N -L 5433:localhost:5432 alice@serveur.example.com
Attention

Tunnel distant

3 commandes
CommandeDescriptionExempleRisque
ssh -RDemande au serveur distant d'écouter sur un port et de transférer les connexions à travers SSH vers une destination côté client.
ssh -R 8080:localhost:3000 alice@serveur.example.com
Attention
ssh -N -RCrée uniquement le tunnel distant sans ouvrir de shell.
ssh -N -R 8080:localhost:3000 alice@serveur.example.com
Attention
remote forwarding publicUn tunnel distant exposé sur une interface non locale peut rendre un service accessible à d'autres machines selon la configuration SSH du serveur.
ssh -R 0.0.0.0:8080:localhost:3000 alice@serveur.example.com
Danger

Proxy SOCKS

3 commandes
CommandeDescriptionExempleRisque
ssh -DCrée un proxy SOCKS local permettant à des applications compatibles d'envoyer leur trafic à travers la connexion SSH.
ssh -D 1080 alice@serveur.example.com
Attention
ssh -N -DCrée uniquement le proxy SOCKS sans ouvrir de session interactive.
ssh -N -D 1080 alice@serveur.example.com
Attention
curl via SOCKSExemple d'utilisation d'un proxy SOCKS SSH avec curl.
curl --proxy socks5h://localhost:1080 https://example.com
Sûr

Agent forwarding

3 commandes
CommandeDescriptionExempleRisque
ssh -ATransmet l'accès à l'agent SSH local vers la machine distante. À utiliser uniquement vers des serveurs de confiance.
ssh -A alice@bastion.example.com
Danger
ForwardAgent yesActive de manière persistante l'agent forwarding pour un hôte dans la configuration SSH. Déconseillé comme réglage global.
ForwardAgent yes
Danger
ForwardAgent noDésactive explicitement le forwarding d'agent.
ForwardAgent no
Sûr

Connexions partagées

5 commandes
CommandeDescriptionExempleRisque
ControlMasterPermet à plusieurs connexions SSH vers le même serveur de partager une connexion principale.
ControlMaster auto
Sûr
ControlPathDéfinit l'emplacement du socket utilisé par le multiplexage SSH.
ControlPath ~/.ssh/cm-%r@%h:%p
Sûr
ControlPersistConserve la connexion maître pendant une durée déterminée après la fin de la dernière session.
ControlPersist 10m
Sûr
ssh -O checkVérifie l'existence d'une connexion maître active.
ssh -O check production
Sûr
ssh -O exitDemande la fermeture de la connexion maître partagée.
ssh -O exit production
Sûr

Diagnostic

6 commandes
CommandeDescriptionExempleRisque
ssh -vActive un premier niveau de détails de diagnostic pour comprendre la connexion et l'authentification.
ssh -v alice@serveur.example.com
Sûr
ssh -vvAffiche davantage d'informations de diagnostic.
ssh -vv alice@serveur.example.com
Sûr
ssh -vvvAffiche le niveau maximal de verbosité courant de la CLI SSH, utile pour les problèmes complexes de clés et configuration.
ssh -vvv alice@serveur.example.com
Sûr
ssh -GAffiche la configuration client finale calculée pour un hôte sans établir la connexion.
ssh -G production
Sûr
ssh -QInterroge les algorithmes et fonctionnalités supportés par le client OpenSSH.
ssh -Q key
Sûr
nc -vzPermet de vérifier rapidement si un port SSH distant semble accessible avant de diagnostiquer SSH lui-même.
nc -vz serveur.example.com 22
Sûr

Serveur OpenSSH

6 commandes
CommandeDescriptionExempleRisque
systemctl status sshAffiche l'état du service SSH sur les distributions où l'unité porte le nom ssh.
systemctl status ssh
Sûr
systemctl status sshdAffiche l'état du daemon OpenSSH sur les distributions où l'unité porte le nom sshd.
systemctl status sshd
Sûr
sshd -tVérifie la syntaxe et certaines options de la configuration du serveur SSH avant redémarrage.
sudo sshd -t
Sûr
sshd -TAffiche la configuration effective calculée par sshd.
sudo sshd -T
Sûr
systemctl reload sshRecharge la configuration du serveur SSH sans effectuer un redémarrage complet lorsque le service le permet.
sudo systemctl reload ssh
Attention
systemctl restart sshRedémarre le service SSH. Une erreur de configuration peut couper les nouvelles connexions.
sudo systemctl restart ssh
Danger

Durcissement

9 commandes
CommandeDescriptionExempleRisque
PermitRootLogin noDésactive les connexions SSH directes avec le compte root.
PermitRootLogin no
Attention
PasswordAuthentication noDésactive l'authentification par mot de passe. À faire uniquement après avoir vérifié qu'une authentification par clé fonctionne.
PasswordAuthentication no
Danger
PubkeyAuthentication yesAutorise l'authentification par clé publique.
PubkeyAuthentication yes
Sûr
AllowUsersLimite les utilisateurs autorisés à se connecter via SSH.
AllowUsers alice deploy
Attention
AllowGroupsLimite les connexions SSH aux membres de groupes définis.
AllowGroups ssh-users
Attention
MaxAuthTriesLimite le nombre de tentatives d'authentification autorisées par connexion.
MaxAuthTries 3
Sûr
X11Forwarding noDésactive le forwarding X11 lorsqu'il n'est pas utilisé.
X11Forwarding no
Sûr
AllowAgentForwarding noDésactive le forwarding d'agent sur le serveur lorsqu'il n'est pas nécessaire.
AllowAgentForwarding no
Sûr
AllowTcpForwarding noInterdit les tunnels TCP SSH. À ne désactiver que si les tunnels ne sont pas nécessaires.
AllowTcpForwarding no
Attention

Exemple ~/.ssh/config

3 commandes
CommandeDescriptionExempleRisque
alias serveurConfiguration client simple permettant ensuite d'utiliser uniquement ssh production.
Host production
  HostName serveur.example.com
  User deploy
  Port 22
  IdentityFile ~/.ssh/id_ed25519_production
  IdentitiesOnly yes
Sûr
alias avec bastionConfiguration d'un serveur privé accessible uniquement via un bastion.
Host bastion
  HostName bastion.example.com
  User alice

Host db-production
  HostName 10.0.1.20
  User admin
  ProxyJump bastion
Sûr
keepaliveConfiguration utile pour certaines connexions sujettes aux coupures d'inactivité.
ServerAliveInterval 60
ServerAliveCountMax 3
Sûr

À manipuler avec prudence

6 commandes
CommandeDescriptionExempleRisque
ssh -ALe forwarding d'agent expose temporairement l'accès à ton agent sur la machine distante. Une machine compromise peut abuser de cet accès tant que la session existe.
ssh -A bastion
Danger
StrictHostKeyChecking=noDésactive une protection importante contre les serveurs inconnus ou dont l'identité change. À éviter comme solution permanente.
ssh -o StrictHostKeyChecking=no serveur
Danger
UserKnownHostsFile=/dev/nullEmpêche la mémorisation normale des clés d'hôte lorsqu'il est combiné à certaines configurations. Réduit fortement la protection contre l'usurpation.
ssh -o UserKnownHostsFile=/dev/null serveur
Danger
ssh-keyscan automatiqueAjouter sans vérification une empreinte récupérée par le réseau dans known_hosts annule l'intérêt de vérifier l'identité du serveur.
ssh-keyscan serveur >> ~/.ssh/known_hosts
Danger
PasswordAuthentication noPeut verrouiller l'accès distant au serveur si aucune clé fonctionnelle n'a été testée auparavant.
PasswordAuthentication no
Danger
restart sshd sans testRedémarrer SSH avec une configuration invalide peut rendre le serveur inaccessible à distance.
sudo sshd -t && sudo systemctl reload ssh
Danger
SUPER CALCULATEUR / CONNEXION ÉTABLIE

UN PASSAGE SECRET DANS DEV SEREIN

Bienvenue sur
Code Lyoko.

Le monde virtuel n’était qu’à quelques lettres.
Jérémie a ouvert la connexion. À toi de jouer.

Des arbres infinis, des chemins suspendus. Garde un œil sur la mer numérique.

LYOKO-GUERRIERS

Aelita · Yumi · Ulrich · Odd

SCAN DU TERRITOIREFORÊT / 01

ALERTE XANA · TOUR ACTIVÉE

On compte sur toi, Aelita.