Comment ajouter des clés SSH sur Ubuntu 20.04

Comment ajouter des clés SSH sur Ubuntu 20.04

Configurez une connexion sécurisée sans mot de passe à votre serveur Ubuntu distant à l'aide de clés SSH

SSH est un protocole réseau client-serveur sécurisé qui aide un ordinateur client à se connecter et à communiquer avec un serveur distant. La connexion SSH garantit que les commandes saisies dans le terminal sont envoyées au serveur distant via un canal crypté.

Il existe deux types de mécanismes d'authentification utilisés pour se connecter au serveur distant, l'authentification basée sur un mot de passe (sujet aux attaques par force brute) et l'authentification basée sur les clés SSH (qui est très sécurisée).

Dans l'authentification par clé SSH, une paire de clés est générée sur l'ordinateur client, appelée clé publique et clé privée. Une copie de cette clé publique est mise à disposition sur le serveur distant. Lorsqu'un client envoie une demande de connexion au serveur, le serveur génère une chaîne aléatoire et la crypte à l'aide de la clé publique. Cette chaîne ne peut être déchiffrée qu'à l'aide de la clé privée disponible sur l'ordinateur client. Cette méthode garantit que le serveur n'est accessible qu'aux clients contenant la clé privée.

Dans ce guide, nous verrons comment configurer des clés SSH sur le serveur Ubuntu 20.04 LTS.

Vérifiez si vous avez une clé SSH existante sur votre ordinateur

Pour vérifier si une paire de clés SSH existe déjà sur votre ordinateur, tapez cette commande dans votre terminal.

ls -l ~/.ssh/id_*.pub

Si la commande ci-dessus renvoie no such file or directoryou no matches found, cela signifie que la paire de clés SSH n'existe pas.

Si vous disposez d'une paire de clés SSH existante, vous pouvez soit utiliser la même paire de clés pour accéder à deux serveurs distants, soit créer une paire de clés différente portant un nom différent. Passons à l'étape suivante et voyons comment générer des clés SSH pour les deux cas.

Création de clés SSH sur un ordinateur client

Pour générer une nouvelle paire de clés SSH sur votre ordinateur, tapez la commande comme indiqué ci-dessous.

ssh-keygen

Par défaut, les clés SSH sont de 2048 bits. Pour une meilleure sécurité, si vous souhaitez générer des clés SSH avec des bits plus élevés, utilisez la commande suivante.

ssh-keygen -b 4096

Si la commande s'exécute avec succès, le message suivant s'affichera sur votre écran.

génération d'une paire de clés rsa publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/harshit/.ssh/id_rsa) :

Maintenant, si vous n'avez aucune paire de clés SSH existante sur votre ordinateur Enter, appuyez simplement sur , mais si vous avez une clé SSH existante, enregistrez la clé avec un nom de fichier différent, comme indiqué ci-dessous.

Entrez le fichier dans lequel enregistrer la clé (/home/your_name/.ssh/id_rsa) : /home/your_name/.ssh/id_rsa_xxx

Remplacez le xxxà la fin du nom de fichier par un nom approprié, comme indiqué ci-dessous et appuyez sur Enter.

Entrez le fichier dans lequel enregistrer la clé (/home/your_name/.ssh/id_rsa) : /home/your_name/.ssh/id_rsa_client_1

L'invite suivante vous demandera d'entrer une phrase secrète d'une longueur arbitraire, elle assurera une sécurité à deux niveaux sur votre appareil. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

La saisie de cette phrase secrète garantira que même si une personne a accès à votre clé privée, elle ne pourra pas accéder à votre serveur distant sans cette phrase secrète.

Une fois l'ensemble du processus terminé, le message suivant apparaît sur votre écran.

Comment ajouter des clés SSH sur Ubuntu 20.04

Les clés SSH ont été générées sur votre système. Il est maintenant temps de copier la clé publique sur le serveur distant.

Copier la clé publique sur le serveur Ubuntu distant

La méthode la plus simple et la plus rapide pour copier la clé publique sur le serveur distant consiste à utiliser l' ssh-copy-idutilitaire. Mais si cet utilitaire n'est pas disponible sur votre machine pour une raison quelconque, vous pouvez également utiliser d'autres méthodes fournies dans cette section.

Utilisation de l'utilitaire ssh-copy-id

L' ssh-copy-idutilitaire est par défaut disponible sur votre machine Ubuntu qui copie la clé publique de votre appareil dans le répertoire approprié de votre machine Ubuntu distante.

Pour copier la clé publique ssh, tapez simplement la commande dans votre terminal, comme indiqué ci-dessous.

ssh-copy-id [email protected]

Remplacez le usernameet hostnamedans la commande ci-dessus par le nom d'utilisateur et le nom d'hôte de votre serveur.

Le message suivant apparaîtra sur votre terminal si vous vous connectez à votre hébergeur pour la première fois, tapez yeset appuyez sur Enter.

L'authenticité de l'hôte '172.105.XX.XX (172.105.XX.XX)' ne peut pas être établie.
L'empreinte digitale de la clé ECDSA est xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx.
Êtes-vous sûr de vouloir continuer à vous connecter (oui/non) ? Oui

Maintenant, l' ssh-copy-idutilitaire recherchera le fichier avec le nom id_rsa.pubqui contient la clé publique SSH. Une fois le processus d'analyse terminé, il vous sera demandé de saisir le mot de passe de votre serveur distant, comme indiqué ci-dessous. Tapez le mot de passe et appuyez sur Enter.

/usr/bin/ssh-copy-id : INFO : tentative de connexion avec la ou les nouvelles clés, pour filtrer celles qui sont déjà installées
/usr/bin/ssh-copy-id : INFO : il reste 1 clé(s) à installer -- si on vous le demande maintenant, c'est pour installer les nouvelles clés
Mot de passe de [email protected] :

Une fois la clé ajoutée, le message suivant apparaîtra sur votre terminal en sortie.

Nombre de clé(s) ajoutée(s) : 1
Essayez maintenant de vous connecter à la machine, avec : "ssh ' [email protected] '" et vérifiez que seules les clés que vous vouliez ont été ajoutées.

Si vous avez plusieurs clés SSH sur votre ordinateur client, pour copier la clé publique appropriée sur votre ordinateur distant, tapez la commande dans le modèle ci-dessous.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

Astuce

N'oubliez pas de mettre .pub à la fin du nom du fichier lors de la saisie dans le terminal.

Copie de la clé publique par la méthode de tuyauterie

Tapez la commande suivante dans le terminal si l' ssh-copy-idutilitaire n'est pas disponible. Cette commande peut sembler un peu plus longue mais elle fonctionne correctement.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Remplacez remote_usernameet server_ip_addresspar votre nom d'utilisateur et votre adresse IP.

Si plusieurs clés SSH sont disponibles sur votre ordinateur, remplacez-les id_rsa.pubpar le fichier de clé SSH publique de votre choix. Par exemple, id_rsa_client_1.pub.

Tapez le mot de passe de l'utilisateur distant lorsque vous y êtes invité et appuyez sur Enter.

[email protected]'s password:

Une fois que vous avez tapé le mot de passe, le id_rsa.pubfichier sera copié dans le authorized_keysfichier du serveur distant.

Copier manuellement la clé publique

Utilisez cette méthode lorsque vous n'avez pas accès à votre système distant via l'authentification par mot de passe.

Ouvrez le id_rsa.pubfichier à l'aide de la catcommande dans le terminal. Vous pouvez également l'ouvrir à partir d'un éditeur de texte, le but est simplement de copier le contenu du fichier.

cat ~/.ssh/id_rsa.pub

Le contenu du fichier ressemblera à, comme indiqué ci-dessous.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [email protected] _PC

Maintenant, connectez-vous à votre serveur distant et collez le contenu copié à l'aide de la commande ci-dessous. Remplacez le above_stringpar le contenu copié.

echo above_string >> ~/.ssh/authorized_keys

Configuration de plusieurs clés SSH (facultatif)

Cette étape est destinée aux personnes qui ont configuré plusieurs clés SSH sur leur ordinateur client. Ignorez cette section si vous n'avez qu'une seule configuration de clé SSH.

Pour gérer plusieurs clés SSH, nous allons maintenant créer un configfichier dans le .sshrépertoire à l'aide de la commande ci-dessous.

cd ~/.ssh
vim config

Tapez ipour entrer en mode commande et tapez les détails de plusieurs hôtes, comme illustré dans l'exemple suivant :

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

De même, saisissez les détails des autres serveurs distants et leurs clés. Une fois le processus terminé, appuyez sur Escet :wqpour enregistrer et quitter.

Maintenant, les processus suivants sont les mêmes pour les deux ayant une ou plusieurs clés SSH sur l'ordinateur client.

Connectez-vous à votre serveur distant à l'aide de clés SSH

Une fois le processus de copie de votre clé publique terminé, connectez-vous à votre serveur distant en tapant la commande comme indiqué ci-dessous.

ssh [email protected]_ip_address

Si vous avez fourni la phrase secrète lors de la génération de la paire de clés, vous serez invité à la saisir. Une nouvelle session s'ouvrira une fois le processus d'authentification terminé.

Vous avez maintenant configuré avec succès l'authentification basée sur les clés SSH sur votre serveur distant. Mais l'authentification par mot de passe est toujours active sur votre serveur, cela signifie que votre serveur distant est toujours sujet aux attaques par force brute.

Nous allons donc maintenant désactiver complètement le mécanisme de connexion par mot de passe à partir de notre serveur distant.

Désactiver le mécanisme de connexion basé sur un mot de passe

Avant d'apporter des modifications, assurez-vous que l'utilisateur root ou tout utilisateur sudo activé pour votre compte distant a accès à votre serveur à l'aide du système d'authentification par clé SSH. Cette étape verrouillera ou désactivera complètement la connexion basée sur un mot de passe, il est donc crucial qu'au moins un utilisateur root ait accès au serveur via la clé SSH.

Connectez-vous à votre serveur Ubuntu distant et tapez la commande ci-dessous.

sudo vim /etc/ssh/sshd_config
  • Appuyez sur Esc, /et le type « PasswordAuthentication » et a frappé enter
  • Maintenant, appuyez sur iet modifiez la valeur de 'PasswordAuthentication yes' en 'PasswordAuthentication no'.
  • Appuyez sur Escet répétez le processus ci-dessus pour trouver « ChallengeResponseAuthentication », « UsePAM », et modifiez également leurs valeurs no.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Une fois que toutes les valeurs sont définies sur no, appuyez sur Esc, tapez :wqet appuyez sur enter.

Pour activer toutes les modifications, redémarrez le sshservice à l'aide de la commande ci-dessous.

sudo systemctl restart ssh

Ouvrez maintenant une nouvelle fenêtre de terminal sur votre ordinateur et vérifiez que votre authentification par clé SSH fonctionne correctement avant de fermer la session en cours.

Une fois le processus de vérification terminé, fermez toutes les sessions en cours.

Nous avons maintenant configuré avec succès l'authentification basée sur la clé SSH sur notre serveur Ubuntu 20.04. Désormais, personne ne peut se connecter à votre serveur à l'aide d'un mécanisme de connexion basé sur un mot de passe. 


Comment copier et coller sur Chromebook

Comment copier et coller sur Chromebook

La première chose que vous pourriez vous demander en passant à un Chromebook est de savoir comment faire les choses de base, le genre de choses que vous aviez sous la main dans votre ancien système d'exploitation. Le copier-coller est l'une de ces fonctions fondamentales que vous devez utiliser à un moment ou à un autre.

Comment faire un test de dactylographie sur Linux avec tt

Comment faire un test de dactylographie sur Linux avec tt

À l'ère moderne de la technologie, la dactylographie est devenue l'une des activités les plus courantes pour de nombreuses professions. Apprendre à taper plus rapidement avec précision peut vous aider à faire plus de choses dans le même laps de temps.

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Ubuntu est populaire pour sa robustesse et relativement moins d'erreurs. Mais ce n'est pas sans son sac de problèmes, bien sûr. L'un de ces problèmes concerne son pilote Wi-Fi. Vous pourriez mettre votre système sous tension pour constater que votre Wi-Fi ne fonctionne pas.

Installez TeamViewer 8 pour Ubuntu 12.04

Installez TeamViewer 8 pour Ubuntu 12.04

Dans cette vidéo, j'installe et utilise TeamViewer 8 pour le système Ubuntu 12.04 avec un guide complet. Mais cela fonctionnera également sur Windows.

Comment créer et scanner des codes QR sur Chromebook

Comment créer et scanner des codes QR sur Chromebook

Les codes de réponse rapide, ou codes QR en abrégé, sont des codes-barres avancés qui contiennent plus d'informations qu'un code-barres traditionnel. Ces codes sont bidimensionnels, ce qui vous permet de les scanner verticalement ou horizontalement.

Comment installer et supprimer des packages dans Arch Linux

Comment installer et supprimer des packages dans Arch Linux

Vous voulez installer des packages sur Arch Linux mais vous ne savez pas comment faire ? Beaucoup de gens sont confrontés à ce problème lorsqu'ils migrent pour la première fois des distributions basées sur Debian vers Arch. Cependant, vous pouvez facilement gérer les packages sur votre système basé sur Arch à l'aide des gestionnaires de packages.

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

De nombreux nouveaux thèmes mis à jour sont prêts à être installés sur le nouveau bureau GNOME d'Ubuntu 20.04. Voici une liste des meilleurs thèmes Ubuntu en 2020

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

Un mécanisme comme le FTP, le transfert de fichiers peer-to-peer, le transfert Wi-Fi vous fera gagner du temps si vous partagez souvent des fichiers entre votre Android et Ubuntu.

Comment installer Spotify sur Linux

Comment installer Spotify sur Linux

Spotify est l'un des plus grands services de streaming musical. Il a des clients natifs pour les appareils mobiles (Android et iOS) et de bureau (Mac et Windows).

9 commandes de base pour démarrer avec Linux

9 commandes de base pour démarrer avec Linux

Les guides pratiques Linux s'attendent souvent à ce que vous effectuiez certaines opérations dans le terminal, ce qui peut sembler intimidant au début. Mais ne vous inquiétez pas ; cette aide-mémoire pour les commandes Linux couvrira le processus d'ouverture d'un terminal et l'émission de quelques commandes utiles.