
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
Aucune commande ne correspond à ce choix et à votre recherche.
Connexion
9 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh | Ouvre 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@hote | Ouvre une connexion SSH en utilisant explicitement un utilisateur distant. | ssh alice@serveur.example.com | Sûr |
ssh -p | Se 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 -i | Utilise explicitement une clé privée particulière pour l'authentification. | ssh -i ~/.ssh/id_ed25519 alice@serveur.example.com | Sûr |
ssh -4 | Force l'utilisation d'IPv4 pour la connexion. | ssh -4 alice@serveur.example.com | Sûr |
ssh -6 | Force l'utilisation d'IPv6 pour la connexion. | ssh -6 alice@serveur.example.com | Sûr |
ssh -T | Dé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 -t | Force l'allocation d'un pseudo-terminal côté distant. | ssh -t alice@serveur.example.com 'sudo systemctl status nginx' | Sûr |
exit | Ferme normalement la session distante et revient au terminal local. | exit | Sûr |
Commandes distantes
6 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh hote commande | Exé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 sudo | Force un terminal lorsque sudo distant nécessite une interaction. | ssh -t alice@serveur.example.com 'sudo systemctl restart nginx' | Attention |
ssh hote bash -s | Exé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| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh-keygen -t ed25519 | Gé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 -C | Génère une clé Ed25519 avec un commentaire permettant de mieux l'identifier. | ssh-keygen -t ed25519 -C 'alice@laptop' | Sûr |
ssh-keygen -f | Choisit 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 -p | Modifie la passphrase d'une clé privée existante. | ssh-keygen -p -f ~/.ssh/id_ed25519 | Attention |
ssh-keygen -y | Extrait la clé publique correspondant à une clé privée. | ssh-keygen -y -f ~/.ssh/id_ed25519 | Sûr |
ssh-keygen -lf | Affiche l'empreinte d'une clé publique ou privée. | ssh-keygen -lf ~/.ssh/id_ed25519.pub | Sûr |
ssh-keygen -R | Supprime 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh-copy-id | Copie automatiquement la clé publique locale dans authorized_keys sur la machine distante. | ssh-copy-id alice@serveur.example.com | Sûr |
ssh-copy-id -i | Choisit 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 | ssh | Mé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| Commande | Description | Exemple | Risque |
|---|---|---|---|
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-add | Ajoute 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 -l | Liste les empreintes des clés actuellement chargées dans l'agent. | ssh-add -l | Sûr |
ssh-add -L | Affiche les clés publiques correspondant aux identités chargées dans l'agent. | ssh-add -L | Sûr |
ssh-add -d | Retire une clé particulière de l'agent. | ssh-add -d ~/.ssh/id_ed25519_production | Sûr |
ssh-add -D | Retire toutes les identités actuellement chargées dans l'agent. | ssh-add -D | Attention |
Empreintes hôtes
5 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
known_hosts | Fichier contenant les clés d'hôtes SSH déjà rencontrées et approuvées. | ~/.ssh/known_hosts | Sûr |
ssh-keyscan | Ré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_hosts | Ajoute 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 -F | Recherche une entrée correspondant à un hôte dans known_hosts. | ssh-keygen -F serveur.example.com | Sûr |
ssh-keygen -R | Supprime les entrées correspondant à un hôte dans known_hosts. | ssh-keygen -R serveur.example.com | Attention |
Permissions
5 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
chmod 700 ~/.ssh | Restreint l'accès au répertoire SSH personnel au propriétaire. | chmod 700 ~/.ssh | Sûr |
chmod 600 clé privée | Restreint une clé privée en lecture et écriture à son propriétaire. | chmod 600 ~/.ssh/id_ed25519 | Sûr |
chmod 644 clé publique | Permissions classiques pour une clé publique locale. | chmod 644 ~/.ssh/id_ed25519.pub | Sûr |
chmod 600 authorized_keys | Restreint le fichier contenant les clés autorisées de l'utilisateur. | chmod 600 ~/.ssh/authorized_keys | Sûr |
chown -R ~/.ssh | Corrige 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
~/.ssh/config | Fichier de configuration utilisateur permettant de définir des alias et paramètres SSH permanents. | ~/.ssh/config | Sûr |
Host | Déclare un alias ou un motif d'hôte dans la configuration SSH. | Host production | Sûr |
HostName | Définit le véritable nom DNS ou l'adresse IP correspondant à un alias SSH. | HostName serveur.example.com | Sûr |
User | Définit l'utilisateur distant utilisé par défaut pour l'hôte. | User alice | Sûr |
Port | Définit le port SSH à utiliser pour l'hôte. | Port 2222 | Sûr |
IdentityFile | Définit la clé privée utilisée pour la connexion. | IdentityFile ~/.ssh/id_ed25519_production | Sûr |
IdentitiesOnly yes | Demande à SSH d'utiliser uniquement les identités explicitement configurées plutôt que toutes celles disponibles dans l'agent. | IdentitiesOnly yes | Sûr |
ServerAliveInterval | Configure l'envoi périodique de messages permettant de détecter certaines connexions devenues inactives. | ServerAliveInterval 60 | Sûr |
ServerAliveCountMax | Définit combien de réponses manquantes sont tolérées avant d'abandonner la connexion. | ServerAliveCountMax 3 | Sûr |
Bastion & ProxyJump
4 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -J | Se 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 port | Spécifie également le port utilisé par le bastion. | ssh -J alice@bastion.example.com:2222 admin@serveur-prive | Sûr |
plusieurs jump hosts | ProxyJump peut enchaîner plusieurs hôtes intermédiaires. | ssh -J alice@jump1.example.com,bob@jump2.example.com admin@serveur-prive | Attention |
ProxyJump | Configure le bastion directement dans ~/.ssh/config afin de simplifier les connexions répétées. | ProxyJump bastion | Sûr |
SCP
5 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
scp local vers distant | Copie un fichier local vers une machine distante via SSH. | scp fichier.txt alice@serveur.example.com:/tmp/ | Sûr |
scp distant vers local | Copie un fichier distant vers la machine locale. | scp alice@serveur.example.com:/var/log/app.log ./app.log | Sûr |
scp -r | Copie récursivement un dossier. | scp -r ./site alice@serveur.example.com:/var/www/ | Attention |
scp -P | Utilise 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 -i | Utilise explicitement une clé privée. | scp -i ~/.ssh/id_ed25519 fichier.txt alice@serveur:/tmp/ | Sûr |
SFTP
8 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
sftp | Ouvre une session interactive de transfert de fichiers utilisant SSH. | sftp alice@serveur.example.com | Sûr |
sftp -P | Utilise un port SSH spécifique. | sftp -P 2222 alice@serveur.example.com | Sûr |
get | Télécharge un fichier distant depuis une session SFTP. | get archive.tar.gz | Sûr |
put | Envoie un fichier local vers le serveur depuis une session SFTP. | put build.tar.gz | Attention |
ls | Liste les fichiers du répertoire distant courant dans une session SFTP. | ls | Sûr |
lls | Liste les fichiers du répertoire local courant depuis SFTP. | lls | Sûr |
lcd | Change le répertoire local dans une session SFTP. | lcd ./downloads | Sûr |
cd | Change le répertoire distant dans une session SFTP. | cd /var/backups | Sûr |
Rsync via SSH
5 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
rsync -av | Synchronise efficacement un dossier vers une machine distante via SSH. | rsync -av ./site/ alice@serveur:/var/www/site/ | Attention |
rsync -avz | Active également la compression pendant le transfert. | rsync -avz ./site/ alice@serveur:/var/www/site/ | Attention |
rsync --progress | Affiche la progression des transferts. | rsync -av --progress ./backup/ alice@serveur:/backup/ | Sûr |
rsync --dry-run | Simule 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 --delete | Supprime 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -L | Cré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 PostgreSQL | Expose localement un PostgreSQL distant sans publier directement son port sur Internet. | ssh -L 5433:localhost:5432 alice@db.example.com | Sûr |
tunnel service interne | Permet 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 -L | Cré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 -L | Place 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -R | Demande 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 -R | Crée uniquement le tunnel distant sans ouvrir de shell. | ssh -N -R 8080:localhost:3000 alice@serveur.example.com | Attention |
remote forwarding public | Un 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -D | Cré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 -D | Crée uniquement le proxy SOCKS sans ouvrir de session interactive. | ssh -N -D 1080 alice@serveur.example.com | Attention |
curl via SOCKS | Exemple d'utilisation d'un proxy SOCKS SSH avec curl. | curl --proxy socks5h://localhost:1080 https://example.com | Sûr |
Agent forwarding
3 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -A | Transmet 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 yes | Active 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 no | Désactive explicitement le forwarding d'agent. | ForwardAgent no | Sûr |
Connexions partagées
5 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ControlMaster | Permet à plusieurs connexions SSH vers le même serveur de partager une connexion principale. | ControlMaster auto | Sûr |
ControlPath | Définit l'emplacement du socket utilisé par le multiplexage SSH. | ControlPath ~/.ssh/cm-%r@%h:%p | Sûr |
ControlPersist | Conserve 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 check | Vérifie l'existence d'une connexion maître active. | ssh -O check production | Sûr |
ssh -O exit | Demande la fermeture de la connexion maître partagée. | ssh -O exit production | Sûr |
Diagnostic
6 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -v | Active un premier niveau de détails de diagnostic pour comprendre la connexion et l'authentification. | ssh -v alice@serveur.example.com | Sûr |
ssh -vv | Affiche davantage d'informations de diagnostic. | ssh -vv alice@serveur.example.com | Sûr |
ssh -vvv | Affiche 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 -G | Affiche la configuration client finale calculée pour un hôte sans établir la connexion. | ssh -G production | Sûr |
ssh -Q | Interroge les algorithmes et fonctionnalités supportés par le client OpenSSH. | ssh -Q key | Sûr |
nc -vz | Permet 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| Commande | Description | Exemple | Risque |
|---|---|---|---|
systemctl status ssh | Affiche l'état du service SSH sur les distributions où l'unité porte le nom ssh. | systemctl status ssh | Sûr |
systemctl status sshd | Affiche l'état du daemon OpenSSH sur les distributions où l'unité porte le nom sshd. | systemctl status sshd | Sûr |
sshd -t | Vérifie la syntaxe et certaines options de la configuration du serveur SSH avant redémarrage. | sudo sshd -t | Sûr |
sshd -T | Affiche la configuration effective calculée par sshd. | sudo sshd -T | Sûr |
systemctl reload ssh | Recharge la configuration du serveur SSH sans effectuer un redémarrage complet lorsque le service le permet. | sudo systemctl reload ssh | Attention |
systemctl restart ssh | Redémarre le service SSH. Une erreur de configuration peut couper les nouvelles connexions. | sudo systemctl restart ssh | Danger |
Durcissement
9 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
PermitRootLogin no | Désactive les connexions SSH directes avec le compte root. | PermitRootLogin no | Attention |
PasswordAuthentication no | Désactive l'authentification par mot de passe. À faire uniquement après avoir vérifié qu'une authentification par clé fonctionne. | PasswordAuthentication no | Danger |
PubkeyAuthentication yes | Autorise l'authentification par clé publique. | PubkeyAuthentication yes | Sûr |
AllowUsers | Limite les utilisateurs autorisés à se connecter via SSH. | AllowUsers alice deploy | Attention |
AllowGroups | Limite les connexions SSH aux membres de groupes définis. | AllowGroups ssh-users | Attention |
MaxAuthTries | Limite le nombre de tentatives d'authentification autorisées par connexion. | MaxAuthTries 3 | Sûr |
X11Forwarding no | Désactive le forwarding X11 lorsqu'il n'est pas utilisé. | X11Forwarding no | Sûr |
AllowAgentForwarding no | Désactive le forwarding d'agent sur le serveur lorsqu'il n'est pas nécessaire. | AllowAgentForwarding no | Sûr |
AllowTcpForwarding no | Interdit les tunnels TCP SSH. À ne désactiver que si les tunnels ne sont pas nécessaires. | AllowTcpForwarding no | Attention |
Exemple ~/.ssh/config
3 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
alias serveur | Configuration client simple permettant ensuite d'utiliser uniquement ssh production. | | Sûr |
alias avec bastion | Configuration d'un serveur privé accessible uniquement via un bastion. | | Sûr |
keepalive | Configuration utile pour certaines connexions sujettes aux coupures d'inactivité. | | Sûr |
À manipuler avec prudence
6 commandes| Commande | Description | Exemple | Risque |
|---|---|---|---|
ssh -A | Le 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=no | Dé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/null | Empê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 automatique | Ajouter 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 no | Peut verrouiller l'accès distant au serveur si aucune clé fonctionnelle n'a été testée auparavant. | PasswordAuthentication no | Danger |
restart sshd sans test | Redémarrer SSH avec une configuration invalide peut rendre le serveur inaccessible à distance. | sudo sshd -t && sudo systemctl reload ssh | Danger |
