accueil > Gestion réseau > ssh

Guide de commande SSH (Secure Shell)

SSH (Secure Shell) est un protocole réseau qui permet de se connecter en toute sécurité à un ordinateur distant et d'exécuter des commandes. Il offre une sécurité des données grâce à une communication cryptée et est utilisé pour la gestion de serveurs distants, le transfert de fichiers, et bien d'autres fins. À travers ce guide, découvrez les principales fonctionnalités et l'utilisation de SSH.

Aperçu de SSH

SSH fonctionne selon un modèle client-serveur, utilisant un client SSH pour se connecter à un serveur SSH. Par défaut, il utilise le port 22 et protège les communications contre des menaces telles que les attaques de l'homme du milieu ou l'interception des données grâce à une technologie de cryptage robuste.

Principales fonctionnalités de SSH

SSH offre les principales fonctionnalités suivantes :

Fonctionnalités principales de SSH

  • Exécution de commandes à distance: Vous pouvez exécuter des commandes directement sur un serveur distant.
  • Transfert de fichiers sécurisé: Il est possible d'échanger des fichiers en toute sécurité via `scp` (Secure Copy) ou `sftp` (SSH File Transfer Protocol).
  • Redirection de ports (tunneling): Crée un tunnel crypté entre un port local et un port distant, permettant d'utiliser certains services en toute sécurité.
  • Redirection X11: Permet d'exécuter des applications GUI d'un serveur distant sur un PC local.
  • Authentification par clé SSH: Propose un moyen d'authentification plus robuste et pratique utilisant une paire de clés publique-privée au lieu d'un mot de passe.

Commandes SSH principales

Découvrez comment accéder à un serveur distant et effectuer diverses tâches en utilisant les commandes SSH. Combinez les options pour utiliser les fonctionnalités nécessaires.

1. Connexion de base et authentification

2. Fonctions avancées et redirection

Commande générée :

Essayez de combiner les commandes.

Description:

`ssh` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Authentification par clé SSH

L'authentification par clé SSH est une méthode beaucoup plus sûre et pratique que l'authentification par mot de passe. Elle utilise une paire de clés publique et privée pour l'authentification, réduisant ainsi le risque d'exposition du mot de passe.

Génération de clés SSH

Utilisez la commande `ssh-keygen` pour générer une paire de clés publique et privée. Par défaut, les fichiers `~/.ssh/id_rsa` (clé privée) et `~/.ssh/id_rsa.pub` (clé publique) seront créés.

Commande pour générer une clé SSH

ssh-keygen -t rsa -b 4096

Génère une nouvelle paire de clés SSH sur le disque. Vous pouvez définir l'emplacement de stockage et le mot de passe.

Distribution de la clé publique

Vous devez ajouter la clé publique générée (`id_rsa.pub`) dans le fichier `~/.ssh/authorized_keys` du répertoire personnel de l'utilisateur sur le serveur distant. Les utilisateurs dont la clé publique est enregistrée dans ce fichier peuvent se connecter au serveur sans mot de passe en utilisant leur clé privée.

Copier la clé publique sur le serveur (utiliser ssh-copy-id)

ssh-copy-id user@hostname

En utilisant la commande `ssh-copy-id`, vous pouvez facilement copier la clé publique sur le serveur distant. C'est la méthode la plus recommandée.

Copie manuelle de la clé publique (utiliser scp)

scp ~/.ssh/id_rsa.pub user@hostname:~/
ssh user@hostname "mkdir -p ~/.ssh && cat ~/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && rm ~/id_rsa.pub"

Si vous ne pouvez pas utiliser `ssh-copy-id`, vous pouvez copier le fichier de clé publique sur le serveur à l'aide de `scp`, puis l'ajouter manuellement à `authorized_keys`.

Fichier de configuration SSH (~/.ssh/config)

Le fichier de configuration SSH (`~/.ssh/config`) vous permet de stocker à l'avance les informations de connexion aux serveurs que vous utilisez fréquemment, facilitant ainsi leur utilisation. Vous pouvez vous connecter simplement avec un alias sans avoir à saisir des options complexes à chaque fois.

Exemple de fichier de configuration

Voici un exemple du fichier `~/.ssh/config`. Vous pouvez définir les paramètres de connexion pour plusieurs hôtes.

Contenu du fichier config

Host myserver
  HostName 192.168.1.100
  User myuser
  Port 2222
  IdentityFile ~/.ssh/my_server_key.pem

Host dev-web
  HostName dev.example.com
  User webadmin
  ForwardAgent yes
  LocalForward 8080 localhost:80

Options principales de configuration

Voici les principales options disponibles dans le fichier `config`.

  • Host: C'est l'alias de ce bloc de configuration. Utilisé comme `ssh myserver`.
  • HostName: C'est l'adresse IP ou le nom de domaine de l'hôte distant auquel vous vous connectez.
  • User: C'est le nom d'utilisateur pour se connecter au serveur distant.
  • Port: C'est le numéro de port pour la connexion.
  • IdentityFile: C'est le chemin du fichier de clé privée à utiliser pour l'authentification.
  • LocalForward: Configure le transfert de port local. `LocalForward [local_port] [remote_host]:[remote_port]`
  • RemoteForward: Configure le transfert de port distant. `RemoteForward [remote_port] [local_host]:[local_port]`
  • ForwardAgent: Active le transfert de l'agent SSH. Utile lors de connexions à travers plusieurs serveurs.
  • ServerAliveInterval: Envoie régulièrement un signal au serveur pour maintenir la connexion SSH active. (en secondes)
  • StrictHostKeyChecking: Définit si la vérification de la clé d'hôte est activée ou non. `yes` ou `no`

Connexion en utilisant le fichier de configuration

ssh myserver

Si vous avez défini un alias d'hôte `myserver` dans le fichier `~/.ssh/config`, vous pouvez vous connecter facilement comme suit.

Exemples d'utilisation

Familiarisez-vous avec des scénarios réels de gestion de serveurs distants et de transfert de fichiers à travers divers exemples d'utilisation des commandes SSH.

Connexion SSH de base

ssh testuser@192.168.1.100

Se connecte au serveur 192.168.1.100 avec le nom testuser. Un message vous demandera de saisir le mot de passe.

Connexion avec un fichier de clé SSH

ssh -i ~/.ssh/my_key.pem ubuntu@ec2-1-2-3-4.compute-1.amazonaws.com

Utilisez le fichier de clé privée `~/.ssh/my_key.pem` au lieu d'un mot de passe pour vous connecter au serveur. (Souvent utilisé dans les environnements cloud)

Exécution d'une seule commande à distance

ssh user@hostname "ls -l /var/log"

Exécute la commande `ls -l /var/log` sur le serveur distant sans s'y connecter, et ramène le résultat localement.

Redirection de port local (accès à un service Web)

ssh -L 8888:localhost:80 user@hostname

Accédez au port 80 (serveur Web) du serveur distant via le port 8888 sur votre PC local. Cela permet d'accéder au serveur Web comme s'il était local.

Copie de fichiers avec SCP (local -> distant)

scp mylocalfile.txt user@hostname:/tmp/

Copie le fichier `mylocalfile.txt` du local vers le répertoire `/tmp/` du serveur distant.

Copie de fichiers avec SCP (distant -> local)

scp user@hostname:/var/log/syslog .

Copie le fichier `/var/log/syslog` du serveur distant vers le répertoire actuel de votre PC local.


Commandes de la même catégorie