Comment se connecter à un serveur distant à l'aide de la commande SSH de base
Introduction à Secure Shell (SSH)
Secure Shell (SSH) est l'épine dorsale de l'administration à distance sécurisée, fournissant un protocole réseau cryptographique pour l'exploitation des services réseau en toute sécurité sur un réseau non sécurisé. C'est la méthode standard utilisée par les administrateurs système et les développeurs pour accéder et gérer à distance les serveurs Linux, Unix et macOS. Contrairement aux anciens protocoles non sécurisés comme Telnet, SSH chiffre toutes les données transmises, y compris les noms d'utilisateur, les mots de passe et la sortie des commandes, garantissant ainsi la confidentialité et l'intégrité.
Ce guide se concentre sur l'aspect le plus fondamental du protocole : l'établissement d'une connexion simple et directe à l'aide de la syntaxe de base de la commande ssh. Que vous effectuiez une maintenance système, déployiez du code ou transfériez des fichiers, comprendre le mécanisme de connexion de base est la première étape essentielle pour exploiter toute la puissance du protocole Secure Shell.
Prérequis pour la connexion
Avant de tenter de vous connecter, assurez-vous d'avoir les éléments suivants prêts :
- 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.
- 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. - Nom d'utilisateur : Un compte utilisateur valide sur le serveur distant (par exemple,
root,ubuntu,jdoe). - Informations d'identification : Soit le mot de passe de l'utilisateur spécifié, soit un fichier de clé SSH privée 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 où vous voulez aller.
Décomposition de la syntaxe de base
La structure la plus élémentaire de la commande SSH est la suivante :
ssh [options] nom_utilisateur@adresse_hote
| Composant | Description | Valeur d'exemple |
|---|---|---|
ssh |
La commande qui initie la connexion Secure Shell. | - |
[options] |
Indicateurs optionnels pour modifier la connexion (par exemple, port, fichier d'identité). | -p 2222 |
nom_utilisateur |
Le nom du compte sur le serveur distant sur lequel 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, le serveur SSH écoute sur le port TCP 22. Si le serveur distant utilise ce port par défaut, vous n'avez pas besoin de spécifier d'options autres que le nom d'utilisateur et l'hôte.
Exemple : Connexion en tant qu'utilisateur jdoe au serveur situé à 192.168.1.100
ssh [email protected]
Si c'est la première fois que vous vous connectez au serveur, le client SSH vous demandera de vérifier la clé d'hôte du serveur, vous demandant si vous souhaitez faire confiance à la connexion. Vous devez taper yes pour continuer. Cette clé est ensuite stockée dans votre fichier ~/.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 l'indicateur -p pour spécifier ce port personnalisé.
Syntaxe :
ssh -p [numero_de_port] nom_utilisateur@adresse_hote
Exemple : Connexion à appserver.local sur le port 5555
ssh -p 5555 [email protected]
Astuce : Placement du port
Notez que l'option
-pdoit précéder l'argumentnom_utilisateur@hote.
Sortie verbeuse (-v)
Si vous rencontrez des difficultés pour vous connecter (par exemple, des délais d'attente de connexion, échec d'authentification), le mode verbeux est inestimable pour le dépannage. L'indicateur -v augmente le niveau de sortie, affichant 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 (verbeux maximum).
Exécution d'une seule commande à distance
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"
Méthodes d'authentification
Une fois la connexion initiée, le serveur nécessite une authentification pour vérifier votre identité. Les deux méthodes principales 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 invite à entrer le mot de passe de l'utilisateur après l'établissement de la connexion. SSH chiffre la transmission du mot de passe.
Processus :
- Exécutez la commande
ssh. - Le serveur demande :
Mot de passe de [email protected] : - Tapez le mot de passe (la saisie ne sera pas visible).
Avertissement : Problèmes de sécurité
Bien que pratique, l'authentification par mot de passe est vulnérable aux attaques par force brute. Les meilleures pratiques dictent de désactiver complètement l'authentification par mot de passe sur les serveurs accessibles au public et de se fier uniquement aux clés SSH.
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 bien 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/le/fichier/de/cle/privee nom_utilisateur@adresse_hote
Exemple : Connexion à l'aide d'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 bref)
Pour utiliser l'authentification par clé, vous suivez généralement ces étapes :
- Générez la paire de clés sur votre machine locale à l'aide de
ssh-keygen. - Copiez la clé publique dans le fichier
~/.ssh/authorized_keysdu serveur distant, ce qui est généralement fait à l'aide de l'utilitairessh-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 à l'aide d'un fichier de clé privée spécifique. |
| Dépannage de connexion | ssh -v [email protected] |
Exécute la connexion en mode verbeux pour le dépannage. |
| Commande à distance | ssh user@host "uptime" |
Exécute la commande uptime et se déconnecte. |
Conclusion
La commande de base ssh est la porte d'entrée de la gestion des serveurs distants. En maîtrisant la syntaxe de base (ssh utilisateur@hote) et en comprenant les options essentielles telles que la spécification du port (-p) et les fichiers d'identité (-i), vous pouvez établir de manière fiable des connexions sécurisées vers n'importe quel environnement de serveur distant. L'évolution vers l'authentification par clé est cruciale pour maintenir un niveau de sécurité élevé et doit être privilégiée par rapport aux connexions par mot de passe chaque fois que possible. Une fois connecté, vous disposez d'un accès complet à la ligne de commande pour administrer votre machine distante.