Article original : SSH Keygen Tutorial – How to Generate an SSH Public Key for RSA Login
La cryptographie utilise le chiffrement et le déchiffrement pour dissimuler des messages. Cela introduit la confidentialité dans la sécurité de l'information.
Le but de la cryptographie est d'assurer une communication sécurisée entre deux personnes ou appareils qui se connectent via des canaux non sécurisés.
L'expéditeur utilise souvent une clé de chiffrement pour verrouiller le message, tandis que le destinataire utilise une clé de déchiffrement pour déverrouiller le message.
En général, la cryptographie emploie deux stratégies :
Cryptographie à clé symétrique (clé privée) : Avec cette technique, les clés de chiffrement et de déchiffrement sont connues à la fois de l'expéditeur et du destinataire. Certains exemples d'algorithmes utilisant cette technique incluent le chiffrement One Time Pad, le chiffrement Vernam, Playfair, le chiffrement Row column, et le Standard de Chiffrement des Données (DES).
Cryptographie à clé asymétrique (clé publique) : Avec cette technique, chaque personne possède deux clés : la clé Privée (secrète et accessible uniquement au créateur) et les clés Publiques (librement disponibles pour quiconque). L'expéditeur et le destinataire utilisent des clés différentes pour le chiffrement et le déchiffrement. Certains exemples d'algorithmes utilisant cette technique incluent l'algorithme Rivest–Shamir–Adleman (RSA), l'échange de clés Diffie-Hellman (DHE), et l'algorithme de signature numérique (DSA).

Le modèle de chiffrement pour la transmission sécurisée de données
Les ingénieurs logiciels doivent généralement s'authentifier auprès de serveurs ou d'autres services comme GitHub pour le contrôle de version.
Au lieu d'utiliser l'authentification par mot de passe, ils peuvent utiliser l'authentification par clé publique pour générer et stocker une paire de clés cryptographiques sur leur ordinateur. Ensuite, ils peuvent configurer le serveur fonctionnant sur un autre ordinateur pour reconnaître et accepter ces clés.
C'est le flux de la technique de cryptographie à clé asymétrique dont nous avons discuté précédemment et c'est un processus d'authentification plus sécurisé.
Dans ce tutoriel, vous apprendrez comment tout cela fonctionne, ce que signifie SSH, et comment générer des clés SSH avec un algorithme RSA en utilisant SSH keygen.
Prérequis
Un ordinateur fonctionnel sous n'importe quel système d'exploitation.
Des connaissances de base pour naviguer dans la ligne de commande.
Un sourire sur votre visage :)
Brève introduction à SSH (Secure Shell Protocol)
L'authentification par clé publique utilisant SSH est une approche plus sécurisée pour se connecter aux services que les mots de passe. Comprendre SSH est plus facile une fois que vous comprenez comment fonctionne la cryptographie à partir de l'introduction ci-dessus.
Voici une définition de base utile :
"Le Secure Shell Protocol est un protocole de réseau cryptographique pour exploiter des services réseau de manière sécurisée sur un réseau non sécurisé." (Source)
SSH est utilisé entre un client et un serveur, tous deux fonctionnant sur le protocole SSH, pour se connecter à distance au serveur et accéder à certaines ressources via la ligne de commande.

Source : SSH Academy
Il existe une version open-source du protocole SSH (version 2) avec une suite d'outils appelée OpenSSH (également connue sous le nom de OpenBSD Secure Shell). Ce projet inclut les outils suivants :
Génération de clés : ssh-add, ssh-keysign, ssh-keyscan, et ssh-keygen.
Côté service : sshd, sftp-server, et ssh-agent.
Comment générer une clé publique SSH pour la connexion RSA
Notre objectif est d'utiliser ssh-keygen pour générer une clé publique SSH en utilisant l'algorithme RSA. Cela créera une paire de clés contenant une clé privée (enregistrée sur votre ordinateur local) et une clé publique (téléversée sur le service de votre choix).
Maintenant, pour continuer, suivez les étapes ci-dessous pour y parvenir :
- Installez OpenSSH si vous ne l'avez pas déjà installé en utilisant la commande suivante :
// pour mac
brew install openssh
// pour linux
sudo apt install openssh-client && sudo apt install openssh-server
- Créez une paire de clés privée/publique avec un algorithme RSA (chiffrement 2046 bits par défaut), en utilisant la commande :
ssh-keygen -t rsa
- Ou, si vous voulez créer avec un algorithme RSA avec un chiffrement 4096 bits, utilisez la commande :
ssh-keygen -t rsa -b 4096
Entrez un emplacement de fichier pour enregistrer la clé (par défaut, elle sera enregistrée dans le répertoire de votre utilisateur (par exemple,
(/Users/bolajiayodeji/.ssh/id_rsa)).Entrez une phrase secrète pour une sécurité supplémentaire de votre clé privée. En général, une bonne phrase secrète doit comporter au moins 15 caractères (dont au moins une lettre majuscule, des lettres minuscules, des chiffres numériques et des caractères spéciaux) et doit être difficile à deviner. Vous pouvez utiliser l'un de ces générateurs de mots de passe en ligne ou utiliser hexdump pour générer une paraphrase facilement comme suit :
hexdump -vn16 -e'4/4 "%08X" 1 "\n"' /dev/urandom
- Une fois que vous avez créé votre mot de passe avec succès, votre clé privée sera enregistrée dans
/<votre_répertoire_choisi>/.ssh/id_rsaet votre clé publique sera enregistrée dans/<votre_répertoire_choisi>/.ssh/id_rsa.pub.

Maintenant, vous pouvez copier la clé créée dans le fichier authorized_keys du serveur auquel vous souhaitez vous connecter en utilisant ssh-copy-id (cet outil fait partie d'OpenSSH) comme suit :
ssh-copy-id username@remote_host
Alternativement, vous pourriez vouloir ajouter votre clé privée SSH à l'agent ssh et stocker votre phrase secrète dans le trousseau. Vous pouvez ensuite ajouter la clé SHH au compte de votre serveur via une interface utilisateur de tableau de bord ou autre (par exemple, en utilisant des outils comme Git ou GitHub).
Conclusion
Bien qu'un mot de passe fort aide à prévenir les attaques par force brute, l'authentification par clé publique offre un processus d'authentification beaucoup plus sécurisé en utilisant la cryptographie.
J'espère que vous avez trouvé cet article utile. De plus, vous pouvez consulter la page manuelle de ssh-keygen et les ressources suivantes pour approfondir vos connaissances :
Santé ! 💙