Skip to main content

[SSH] Connexion à distance

Introduction

Le SSH pour Secure SHell, est un protocole dont les fonctionnalités sont multiples et puissantes.

On le connaît essentiellement pour sa prise en main sur des shells distants mais il permet aussi de transférer des fichiers ou faire du port forwarding dans un tunnel chiffré.

Connexion à distance

Manuel

Voici la syntaxe globale pour vous connecter sur une machine distante :

ssh |OPTIONS] <USER>@<IP>

Options courantes

Options
Descriptions
-i <KEY>
Permet de spécifier une clé privé lors de la connexion.
-p <PORT>
Permet de spécifier un port lors de la connexion.

Génération d'une paire de clés

Bien que la connexion par mot de passe soit fonctionnelle, elle est fortement déconseillée car non sécurisée.

C'est pour cela qu'il est recommandé d'utiliser une paire de clés pour vous authentifier lors de vos sessions SSH.

Cette méthode d'authentification repose sur un chiffrement asymétrique avec une clé publique et une clé privée (vous pouvez retrouver plus d'informations théoriques sur ma documentation).

Voici la commande qui vous permet de générer une paire de clé (fonctionne sur Linux et Windows) :

ssh-keygen [ALGO] [BITS_LEN]

Vous pouvez utiliser l'algorithme de chiffrement que vous souhaitez mais je préfère utiliser celui par défaut qui est léger et très sécurisé. Je n'utilise donc pas d'option à cette commande.

Il vous sera ensuite demandé le chemin de destination de la nouvelle clé (par défaut dans le répertoire ~/.ssh).

Vous pouvez aussi définir une passphrase ce qui permet une authentification à double facteur (clé+mot de passe), mais cette option est facultative.

Copie de la clé publique sur le serveur

Pour que l'authentification par clé fonctionne, il vous faut copier la clé publique dans le fichier ~/.ssh/authorized_keys sur le serveur distant.

Vous pouvez le faire manuellement ou automatiquement grâce à la commande ssh-copy-id :

ssh-copy-id -i <PUBLIC_KEY> <USER>@<IP>