# [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 : ```bash ssh |OPTIONS] @ ``` #### 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](https://wiki.neopipe.fr/books/fondamentaux/page/fondamentaux-chiffrement-symetrique-asymetrique)). Voici la commande qui vous permet de générer une paire de clé (fonctionne sur Linux et Windows) : ```bash 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 : ```bash ssh-copy-id -i @ ```