Comment se connecter à un serveur distant en utilisant la commande SSH de base

Maîtrisez la commande fondamentale `ssh` pour un accès sécurisé aux serveurs distants. Ce guide essentiel détaille la syntaxe principale, y compris le nom d'utilisateur, l'adresse de l'hôte et les options de port personnalisé (`-p`). Apprenez à établir des connexions en utilisant le mot de passe et l'authentification plus sécurisée par clé (`-i`). Parfait pour les nouveaux utilisateurs et les administrateurs, cet article fournit des exemples pratiques et des conseils de dépannage essentiels pour garantir une connexion robuste et efficace à chaque fois.

Comment se connecter à un serveur distant avec la commande SSH de base

Secure Shell (SSH) est la méthode standard pour ouvrir une session terminal sécurisée sur un serveur distant. Si vous disposez d'une adresse serveur, d'un nom d'utilisateur et d'identifiants valides, la commande ssh de base vous permet de passer de votre ordinateur portable à un shell sur cette machine.

Les problèmes courants sont généralement simples : le mauvais nom d'utilisateur, le mauvais port, une clé privée manquante ou une invite de clé d'hôte du serveur que vous n'avez jamais vue auparavant.

Prérequis pour la connexion

Avant d'essayer de vous connecter, assurez-vous de disposer des éléments suivants :

  1. Client SSH : La plupart des systèmes d'exploitation modernes (Linux, macOS) incluent le client OpenSSH par défaut. Windows 10/11 inclut également un client OpenSSH intégré, bien que les versions plus anciennes puissent nécessiter une application tierce comme PuTTY.
  2. Adresse du serveur (Hôte) : L'adresse IP (par exemple, 192.168.1.50) ou le nom de domaine complet (FQDN, par exemple, server.example.com) de la machine distante.
  3. Nom d'utilisateur : Un compte utilisateur valide sur le serveur distant (par exemple, root, ubuntu, jdoe).
  4. Identifiants : Soit le mot de passe de l'utilisateur spécifié, soit un fichier de clé privée SSH correspondant.

La syntaxe de base de la commande SSH

L'établissement d'une connexion SSH repose sur une structure syntaxique simple et cohérente. La commande nécessite de spécifier qui vous êtes et vous voulez aller.

Décomposition de la syntaxe de base

La structure la plus basique de la commande SSH est :

ssh [options] nom_utilisateur@adresse_hote
Composant Description Exemple de valeur
ssh La commande qui initie la connexion Secure Shell. -
[options] Drapeaux facultatifs pour modifier la connexion (par exemple, port, fichier d'identité). -p 2222
nom_utilisateur Le nom du compte sur le serveur distant auquel vous souhaitez vous connecter. sysadmin
adresse_hote L'adresse IP ou le nom de domaine du serveur distant. 172.31.255.10 ou webserver.com

Connexion au port par défaut

Par défaut, les serveurs SSH écoutent sur le port TCP 22. Si le serveur distant utilise ce port par défaut, vous n'avez besoin que du nom d'utilisateur et de l'hôte.

Exemple : Connexion en tant qu'utilisateur jdoe au serveur à l'adresse 192.168.1.100

ssh [email protected]

S'il s'agit de votre première connexion au serveur, votre client SSH vous invite à vérifier la clé d'hôte du serveur. Confirmez-la uniquement si l'empreinte correspond à ce que votre fournisseur ou administrateur attend. Après l'avoir acceptée, SSH stocke la clé dans ~/.ssh/known_hosts.

Options de connexion essentielles

Bien que la syntaxe de base fonctionne pour la plupart des connexions standard, plusieurs options sont fréquemment utilisées pour personnaliser ou dépanner la connexion.

Spécification d'un port personnalisé (-p)

Pour des raisons de sécurité, de nombreux administrateurs de serveurs modifient le port SSH par défaut (22) pour un port non standard (par exemple, 2222, 50000). Vous devez utiliser le drapeau -p pour spécifier ce port personnalisé.

Syntaxe :

ssh -p [numéro_port] nom_utilisateur@adresse_hote

Exemple : Connexion à appserver.local sur le port 5555

ssh -p 5555 [email protected]

L'option -p vient normalement avant nom_utilisateur@hôte. Cela rend la commande facile à lire et évite de la confondre avec les arguments de commande distante.

Sortie détaillée (-v)

Si vous rencontrez des difficultés de connexion (par exemple, délais d'attente de connexion, échec d'authentification), le mode détaillé est inestimable pour le dépannage. Le drapeau -v augmente le niveau de sortie, montrant les étapes détaillées du processus de connexion, y compris la négociation, l'échange de clés et les tentatives d'authentification.

Syntaxe :

ssh -v nom_utilisateur@adresse_hote

Pour un débogage encore plus détaillé, vous pouvez utiliser -vv ou -vvv (verbosité maximale).

Exécution d'une seule commande distante

SSH est généralement utilisé pour ouvrir une session shell interactive. Cependant, vous pouvez exécuter une seule commande sur le serveur distant sans établir de session continue. La connexion exécute la commande, renvoie la sortie, puis se ferme immédiatement.

Syntaxe :

ssh nom_utilisateur@adresse_hote "commande à exécuter"

Exemple : Vérification de l'espace disque (df -h) sur le serveur distant :

ssh [email protected] "df -h"

Ceci est utile pour des vérifications rapides :

ssh [email protected] "systemctl status nginx --no-pager"

Méthodes d'authentification

Une fois la connexion initiée, le serveur nécessite une authentification pour vérifier votre identité. Les deux principales méthodes sont l'authentification par mot de passe et l'authentification par clé.

1. Authentification par mot de passe

C'est la méthode la plus simple, où le serveur vous demande le mot de passe de l'utilisateur après l'établissement de la connexion. SSH chiffre la transmission du mot de passe.

Processus :

  1. Exécutez la commande ssh.
  2. Le serveur invite : [email protected]'s password:
  3. Tapez le mot de passe (la saisie ne sera pas visible).

L'authentification par mot de passe est pratique, mais les serveurs exposés au public sont souvent la cible de tentatives de connexion par force brute. Pour les systèmes exposés à Internet, la connexion par clé avec authentification par mot de passe désactivée est généralement la base de sécurité la plus sûre.

2. Authentification par clé

L'authentification par clé utilise une paire de clés cryptographiques : une clé publique stockée sur le serveur et une clé privée correspondante stockée en toute sécurité sur votre machine locale. Cette méthode est beaucoup plus sécurisée que les mots de passe.

Spécification du fichier d'identité (-i)

Si votre fichier de clé privée ne se trouve pas à l'emplacement par défaut (~/.ssh/id_rsa ou ~/.ssh/id_ed25519), vous devez utiliser l'option -i pour spécifier son emplacement.

Syntaxe :

ssh -i /chemin/vers/fichier/clé/privée nom_utilisateur@adresse_hote

Exemple : Connexion avec une clé spécifique nommée prod_server_key

ssh -i ~/.ssh/prod_server_key [email protected]

Configuration de l'authentification par clé (Aperçu rapide)

Pour utiliser l'authentification par clé, vous suivez généralement ces étapes :

  1. Générez la paire de clés sur votre machine locale en utilisant ssh-keygen.
  2. Copiez la clé publique dans le fichier ~/.ssh/authorized_keys du serveur distant, généralement à l'aide de l'utilitaire ssh-copy-id.
ssh-copy-id nom_utilisateur@adresse_hote

Résumé des commandes SSH pratiques

Objectif Exemple de commande Description
Connexion standard ssh [email protected] Se connecte en utilisant le port par défaut 22.
Port personnalisé ssh -p 443 [email protected] Se connecte au port 443.
Authentification par clé ssh -i ~/.ssh/dev_key dev@testbed Se connecte en utilisant un fichier de clé privée spécifique.
Débogage de connexion ssh -v [email protected] Exécute la connexion en mode détaillé pour le dépannage.
Commande distante ssh user@host "uptime" Exécute la commande uptime et se ferme.

Vérifications de dépannage rapide

Si la commande échoue, vérifiez l'erreur avant de modifier les paramètres du serveur :

  • Connection timed out : L'hôte ou le port peut être bloqué par un pare-feu, un groupe de sécurité ou un problème de routage.
  • Connection refused : Le serveur est joignable, mais rien n'écoute sur ce port.
  • Permission denied (publickey) : Le serveur n'a pas accepté votre clé, votre nom d'utilisateur ou votre méthode d'authentification.
  • REMOTE HOST IDENTIFICATION HAS CHANGED : La clé d'hôte enregistrée ne correspond plus. Cela peut arriver après une reconstruction du serveur, mais cela peut aussi signaler un grave problème de sécurité. Vérifiez l'empreinte avant de supprimer l'ancienne clé.

Pour les problèmes de clé, cette commande donne généralement suffisamment de détails :

ssh -vvv -i ~/.ssh/prod_server_key [email protected]

En résumé

Commencez par ssh user@host. Ajoutez -p lorsque le serveur utilise un port personnalisé, ajoutez -i lorsque vous avez besoin d'une clé privée spécifique, et utilisez -v ou -vvv lorsque les erreurs d'authentification ou de réseau ne sont pas claires. Pour les serveurs exposés à Internet, évoluez vers l'authentification par clé et désactivez les connexions par mot de passe lorsque votre processus d'accès le permet.