En un mot, SSH ou «Secure Shell» est un protocole crypté, avec lequel vous pouvez vous connecter à un serveur à distance et avoir accès aux informations qui y sont associées. Il fournit un moyen de journalisation beaucoup plus sûr pour fournir un moyen sécurisé de connexion sans compromettre la sécurité.
Étape 1: Créez la paire de clés
Nous commencerons par créer une paire de clés sur le système du client avec l'accès root par type dans ce qui suit:
$ ssh-keygen
Cela déclenche le dernier SSH-Keygen en créant une paire de clés RSA 3072 bits par défaut. Vous pouvez ajouter le drapeau -b 4086 pour générer une clé plus grande. Appuyez sur Entrée, et il stockera la paire de clés dans .ssh / subdirection. Notez que si vous êtes un invité sur un serveur qui avait déjà une clé installée, l'invite vous demandera si vous souhaitez l'écraser ou non. Si c'est le cas, tapez «y» pour signaler un oui.
Ensuite, l'invite vous demandera si vous souhaitez ajouter une phrase secrète. Vous pouvez vous désinscrire, mais nous vous recommandons d'en ajouter un. Il renforce le protocole de sécurité en servant une couche de protection supplémentaire pour contourner un utilisateur non autorisé.
Étape 2: Copiez la clé publique de votre serveur
Ensuite, nous devons transférer la clé publique sur votre serveur Ubuntu.
Vous pouvez utiliser l'utilitaire SSH-Copy-ID en utilisant la commande suivante:
$ ssh-copy-id username @ server_host
Cela devrait faire l'affaire en quelques secondes seulement. Si la clé a été copiée avec succès, passez à la troisième étape.
Parfois, il se trouve que la méthode SSH-Copy-ID échoue, ou n'est tout simplement pas disponible. Dans ce cas, vous devrez le copier via SSH basé sur un mot de passe. Vous pouvez faire ceci en utilisant la commande cat et assurez-vous d'ajouter le symbole >> pour ajouter au contenu au lieu de l'écraser.
$ cat ~ /.ssh / id_rsa.pub | SSH Remote_Username @ Server_IP_Address
"Mkdir -p ~ /.ssh && cat >> ~ /.ssh / autorisé_keys "
Si c'est la première fois que vous vous connectez à un nouvel hôte, votre système vous montrera quelque chose comme:
Tapez simplement oui et appuyez sur le bouton Entrée. Entrez ensuite le mot de passe du compte d'accès utilisateur et la clé publique sera copiée sur votre serveur Ubuntu.
Dans le cas où l'accès SSH basé sur le mot de passe vous est refusé pour une raison quelconque, vous ne pouvez pas épingler, vous pouvez toujours copier la clé publique manuellement. Ajouter le ~ /.ssh / autorisé_keys à l'ID_RSA.Fichier de pub sur votre machine distante. Ensuite, connectez-vous à votre compte de serveur distant et vérifiez si le répertoire ~ SSH existe. Si ce n'est pas le cas, tapez:
$ mkdir -p ~ /.ssh
Maintenant, il vous suffit d'ajouter la clé:
$ echo public_key_string >> ~ /.SSH / AUTORISED_KEYS
$ chmod -r go = ~ /.ssh
Assurez-vous également que vous utilisez le ~ ssh / UTILISATEUR répertoire et PAS Le répertoire racine:
$ chown -r younis: younis ~ /.ssh
Étape 3: Authentifiez les clés SSH
L'étape suivante consiste à authentifier les touches SSH sur le serveur Ubuntu. Tout d'abord, connectez-vous à votre hôte distant:
$ ssh username @ éteinte_host
Vous serez invité à saisir la clé de phrase de passe que vous avez ajoutée à l'étape 2. Tapez-le et continuez. L'authentification prendra un certain temps, et une fois que cela sera fait, vous serez emmené dans un nouveau shell interactif sur votre serveur Ubuntu
Étape 4: Désactivez l'authentification du mot de passe
Avec les touches SSH authentifiées, vous n'avez plus besoin du système d'authentification du mot de passe.
Si l'authentification du mot de passe est activée sur votre serveur, il sera toujours sujet à un accès non autorisé par les utilisateurs via des attaques de force brute. Ce serait donc mieux si vous désactivez une authentification basée sur le mot de passe.
Tout d'abord, vérifiez si ou si vous avez l'authentification basée sur SSH racine compte sur ce serveur. Si c'est le cas, vous devez le modifier en un compte d'accès aux utilisateurs privilégiés de Sudo sur ce serveur, afin que l'accès à l'administrateur soit ouvert en cas d'urgence ou lorsque le système est confronté à des activités suspectes.
Ayant accordé des privilèges d'administration à votre compte d'accès à distance, connectez-vous au serveur distant avec des clés SSH avec des privilèges racine ou sudo. Utilisez ensuite la commande suivante pour accéder au fichier de configuration du démon SSH:
$ sudo gedit / etc / ssh / sshd_config
Avec le fichier ouvert maintenant, recherchez le répertoire «PasswordAuthentication» et saisissez ce qui suit pour désactiver l'authentification du mot de passe et les connexions SSH basées sur le mot de passe.
$ / etc / ssh / sshd_config
…
PasswordAuthentication Non
…
Pour voir ces changements en vigueur, vous devrez redémarrer le service SSHD en utilisant la commande suivante:
$ sudo systemctl redémarrer ssh
Par précaution, ouvrez une nouvelle fenêtre de terminal et testez que le service SSH fonctionne correctement avant de fermer votre session actuelle.
Avec vos touches SSH vérifiées, vous devriez pouvoir voir tout fonctionnant comme normal. Vous pouvez quitter toutes les sessions de serveur actuelles.
Conclusion
Maintenant que vous avez un système d'authentification basé sur SSH-Key en place, vous n'avez plus besoin du système d'authentification de mot de passe vulnérable, car vous pouvez simplement vous connecter sans mot de passe. J'espère que vous avez trouvé ce tutoriel utile.