Comment configurer une clé SSH sur Linux

SSH est une excellente technologie; vous pouvez l’utiliser pour masquer le trafic VPN avec lui, sécuriser votre connexion aux sites Web, etc. Le seul problème est que chaque fois que vous essayez de vous connecter à une machine distante, vous devez entrer votre mot de passe et cela peut être fastidieux. Si vous êtes un développeur qui cherche à se connecter à de nombreuses machines via SSH à la fois avec un script Bash, ou simplement quelqu’un qui utilise Secure Shell et en a assez de saisir des mots de passe, il existe une solution: SSH sans mot de passe. Ce processus consiste à générer une clé SSH sécurisée sur la machine hôte et à la partager comme moyen d’accéder au PC. Cela permettra à toute personne possédant la clé de se connecter, même si elle ne connaît pas le mot de passe. Voici comment faire avancer les choses.

Que sont les clés SSH?

Une clé SSH est un fichier d’identification unique utilisé avec Secure Shell. Le but de ces clés est de fournir une identité unique à l’utilisateur et de les marquer comme «fiables» lors de la connexion. Ces clés elles-mêmes sont plus que des fichiers qui prouvent l’identité de quelqu’un. En fait, SSH permet aux utilisateurs de se connecter avec une clé plutôt qu’un mot de passe. Cela signifie qu’au lieu d’être obligé de saisir un mot de passe chaque fois que vous vous connectez via SSH, vous utilisez la clé SSH.

  Problème de pilote de périphérique de stockage de masse USB (CORRIGÉ)

La clé SSH est placée quelque part en toute sécurité sur votre installation Linux, et à partir de là, vous pouvez vous connecter à la machine distante autant que vous le souhaitez sans mot de passe.

Génération de clés SSH sécurisées

La génération d’une clé SSH sécurisée nécessite d’abord que SSH soit opérationnel. Comprenez que cela ne signifie pas nécessairement que vous devez avoir un serveur SSH. Juste que les outils et technologies SSH de base fonctionnent sur votre PC Linux. Vous ne savez pas comment configurer SSH? Suivez notre guide ici.

Générez toujours les clés SSH sur le système hébergeant le serveur SSH. N’essayez pas de les générer sur le serveur n’hébergeant pas de session SSH, et copiez-le sur la machine hôte SSH. Ça ne marchera pas.

Pour démarrer le processus de génération de clé, ouvrez un terminal. Dans la fenêtre du terminal, exécutez:

ssh-keygen -t rsa

L’exécution de ssh-keygen affichera «Génération d’une paire de clés rsa publique / privée». Cela signifie que le système vous génère à la fois une clé publique et une clé privée à utiliser. Les clés publiques sont celles que tout le monde peut utiliser, et vous devriez bien les distribuer. Une clé privée, en revanche, est quelque chose que vous ne devez jamais partager avec personne. D’où le nom «privé».

  ChooseMyPC vous aide à trouver des pièces pour construire votre PC économique

Les clés s’enregistreront sur /home/username/.ssh/id_rsa.

Remarque: NE SUPPRIMEZ PAS le dossier ~ / .ssh, car il contient vos clés. Si vous altérez ce dossier de quelque manière que ce soit, puis essayez de vous connecter à distance à cette machine, l’invite SSH échouera. Il imprimera également un avertissement et vous bloquera.

Clés SSH sur une machine distante

Maintenant que les clés SSH (publiques et privées) sont créées et prêtes à être utilisées, vous devez les copier sur le système à partir duquel vous souhaitez vous connecter. Il est important que vous répétiez ce processus sur toutes les machines auxquelles vous prévoyez de vous connecter via SSH. Sinon, ceux qui n’ont pas la clé devront se connecter en utilisant la méthode du mot de passe.

Pour ajouter les clés au système distant, suivez cet exemple. Assurez-vous de le faire à partir de la machine hôte via SSH.

ssh username@remote-host-name mkdir -p .ssh

L’exécution de cette commande ssh créera un dossier caché ~ / .ssh dans le répertoire personnel de la machine distante (avec l’utilisateur qui a été utilisé pour se connecter). Ce dossier est important, car c’est là que nous copierons les fichiers de clé SSH nouvellement générés.

Pour copier les fichiers de clés SSH, exécutez encore une autre commande de la machine hôte SSH vers la machine distante qui a besoin des clés:

cat .ssh/id_rsa.pub | ssh username@remote-host-name 'cat >> .ssh/authorized_keys'

La copie prendra quelques secondes, selon la vitesse du réseau. Une fois terminé, le PC distant aura les clés générées et pourra se connecter au PC hôte SSH sans mot de passe.

  Comment créer un post de grille Instagram 3 × 3 sur iOS

Sauvegarde des clés SSH

Les clés SSH sont des choses utiles, et chacune est unique. C’est pour cette raison que les soutenir est la meilleure solution. Le problème est que si vous l’enregistrez ailleurs, quelqu’un peut trouver votre clé SSH, la conserver et l’utiliser pour lui-même. La question est donc de savoir quel est le bon moyen de sauvegarder en toute sécurité une clé SSH? Chiffrement.

Le moyen le plus rapide, le plus efficace (et le plus simple) de chiffrer est d’utiliser GnuPG. L’outil lui-même est intégré à la plupart des outils de cryptage déjà sous Linux, et est le choix lorsque le cryptage des fichiers est mis en place. Pour installer GnuPG, ouvrez un terminal et recherchez dans votre gestionnaire de paquets «gpg». Le programme devrait être facile à trouver, même sur des distributions Linux très obscures.

Une fois que GPG est opérationnel, démarrez le processus de chiffrement en compressant votre répertoire ~ / .ssh dans un fichier d’archive tar. Cela évitera de devoir chiffrer individuellement chaque fichier du dossier ~ / .ssh.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Une fois la compression terminée, démarrez le processus de chiffrement.

Remarque: avant de chiffrer, exécutez gpg dans le terminal pour générer un nouveau trousseau de clés.

gpg -c ssh-stuff.tar.gz

Lorsque le processus de cryptage est terminé, GnuPG sortira un fichier avec l’étiquette «ssh-stuff.tar.gz.gpg». N’hésitez pas à supprimer la version originale non verrouillée du fichier. Pour déchiffrer votre archive de sauvegarde, procédez comme suit:

gpg ssh-stuff.tar.gz.gpg