GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter une clé publique SSH au serveur

L'authentification par clé publique vous permet d'accéder à un serveur via SSH sans mot de passe. Voici deux méthodes pour copier la clé ssh publique sur le serveur.

Je crois que vous comprenez le concept de base de SSH. Votre serveur Linux a activé ssh. Vous avez généré des clés ssh sur votre ordinateur personnel. Vous souhaitez maintenant télécharger votre clé publique sur les clés autorisées du serveur afin de pouvoir y accéder sans avoir à taper le mot de passe de votre compte tout le temps.

Ce tutoriel rapide vous montre deux méthodes pour ajouter une clé SSH publique au serveur.

Exigences

Avant de voir cela, soyons clairs sur ce que vous devriez déjà avoir :

  • Votre serveur de destination doit avoir ssh activé
  • Vous devriez avoir généré des clés ssh publiques et privées (utilisez simplement la commande ssh-keygen -t rsa )
  • Vous devez avoir un compte utilisateur et un mot de passe sur le serveur. Même le compte root fera l'affaire.
  • Vous devez connaître l'adresse IP du serveur

Maintenant que vous vous êtes assuré des quatre exigences ci-dessus, voyons comment utiliser l'authentification par clé publique.

L'authentification se fait par base d'utilisateurs, de sorte que la clé publique va au domicile de l'utilisateur prévu.

Méthode 1 :copier automatiquement la clé ssh sur le serveur

La première méthode consiste pour l'utilisateur final à copier la clé publique de son ordinateur personnel dans la liste des clés autorisées sur le serveur distant.

Ici, je suppose que vous avez pu vous connecter au serveur distant en utilisant ssh [email protected]_of_server. Il vous demande le mot de passe de votre compte et vous entrez sur le serveur.

Si vous ajoutez votre clé publique au serveur, vous devriez pouvoir vous connecter sans taper le mot de passe tout le temps.

OpenSSH fournit un appel d'outil pratique appelé ssh-copy-id pour copier les clés publiques ssh sur des systèmes distants. Il crée même les répertoires et fichiers requis.

Comme je l'ai mentionné précédemment, vous devez connaître le nom d'utilisateur et le mot de passe du serveur auquel vous souhaitez accéder via l'authentification par clé publique.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_ADDRESS_OF_THE_SERVER

Lorsque vous y êtes invité, entrez le mot de passe de votre compte d'utilisateur sur le serveur distant. Votre clé publique doit être automatiquement copiée dans le dossier approprié sur le serveur distant.

J'ai utilisé ~/.ssh/id_rsa.pub car c'est l'emplacement par défaut de la clé ssh publique. Si vous l'avez à un autre endroit, vous devez l'utiliser dans la commande ci-dessus.

Méthode 2 :copier manuellement la clé ssh publique sur le serveur

La première méthode avait l'action côté utilisateur. Disons que vous êtes l'administrateur système et que votre serveur n'autorise pas la connexion SSH via un mot de passe. La seule façon d'accéder au serveur est d'utiliser l'authentification par clé publique SSH.

Dans ce cas, vous pouvez demander à l'utilisateur final de fournir sa clé publique. Maintenant, ce que vous pouvez faire est de créer le répertoire .ssh/authorized_keys puis de copier la clé publique ici.

Laissez-moi vous montrer les étapes.

Étape 1 :Obtenir la clé publique

Demandez à l'utilisateur final de fournir la clé publique en saisissant la commande suivante :

cat ~/.ssh/id_rsa.pub

Il affichera une longue chaîne aléatoire commençant par ssh-rsa :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP [email protected]

Vous pouvez obtenir ce texte par e-mail ou par des outils de messagerie. Normalement, cela ne devrait pas poser de problème.

Étape 2 :Créer un répertoire ssh dans le répertoire personnel de l'utilisateur (en tant qu'administrateur système )

N'oubliez pas que vous devez créer ces nouveaux répertoires et fichiers dans le répertoire personnel de l'utilisateur final, et non dans le vôtre (root/sysadmin).

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

Ouvrez maintenant ce fichier /home/user_name/.ssh/authorized_keys avec un éditeur de texte comme Vim et ajoutez la clé publique de l'utilisateur ici :

vim /home/user_name/.ssh/authorized_keys

Enregistrez et fermez le fichier. C'est presque prêt.

Étape 3 :Définissez l'autorisation appropriée pour le fichier

Il est très important d'avoir l'autorisation de fichier appropriée sur le fichier ssh, sinon vous verrez des erreurs telles que Autorisation refusée (clé publique).

Tout d'abord, assurez-vous de définir les autorisations de fichier correctes :

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

Vous avez créé ces fichiers avec root ou vos propres comptes d'administrateur pour un autre utilisateur. Vous devez attribuer la propriété à l'utilisateur :

chown -R username:username /home/username/.ssh

Maintenant que c'est fait, vous pouvez demander à l'utilisateur final de se connecter au serveur.

Faites-moi savoir si vous rencontrez des problèmes ou si vous avez des suggestions à ce sujet.


Linux
  1. Comment générer une clé SSH dans Windows 10

  2. Comment configurer des clés SSH

  3. Comment se connecter au serveur ssh avec plink et cmd et clé publique

  4. Ssh – Étant donné une clé Ssh privée, comment récupérer la clé publique ?

  5. Comment Ssh vers un serveur en utilisant un autre serveur ? ?

Comment ajouter une adresse IP privée à un serveur Ubuntu

Comment SSH au serveur via Linux

Comment ajouter une adresse IP privée à un serveur Debian

Comment ajouter ma clé SSH à Github/Bitbucket ?

Comment ajouter une clé SSH au code VS et se connecter à un hôte

Ajouter la clé publique au fichier known_hosts