GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer les clés autorisées SSH sur Ubuntu

SSH, ou Secure Shell, est conçu pour accéder au contenu de l'hôte distant pour effectuer divers types de tâches à distance. SSH n'est pas installé par défaut sur Ubuntu. Après l'installation, SSH peut fournir un accès crypté et protégé par mot de passe au système distant. Le serveur SSH s'exécute sur l'hôte distant et le client SSH s'exécute sur le système établissant la connexion à distance. les authorized_keys Le fichier est la partie la plus importante de la connexion SSH. Il spécifie les clés utilisées pour authentifier les utilisateurs autorisés à se connecter à l'hôte distant à l'aide de l'authentification par clé publique. L'utilisation de ce fichier pour la connexion SSH a été expliquée dans ce tutoriel.

exigences

Le serveur SSH n'est pas installé par défaut sur Ubuntu. Vous devez installer le package OpenSSH qui fonctionnera comme un serveur SSH avant de commencer ce tutoriel. Exécutez la commande suivante pour installer le serveur OpenSSH s'il n'est pas déjà installé sur le système.

$ sudo apt install openssh-server

Générer une clé SSH

Générez les paires de clés SSH pour exécuter les commandes sur le serveur distant. Exécutez la commande suivante pour créer la clé publique et la clé privée. La clé privée est stockée sur le serveur distant et les clés publiques sont stockées en toute sécurité dans le client.

$ ssh-keygen -t rsa

Après avoir exécuté la commande ci-dessus, il vous sera demandé le nom du fichier dans lequel la clé sera enregistrée. Appuyez sur Entrée key pour conserver le nom de fichier de la clé publique par défaut, qui est id_rsa.pub . Ensuite, il vous sera demandé le mot de passe pour vous connecter. Appuyez à nouveau sur Entrée appuyez deux fois si vous souhaitez conserver le mot de passe vierge. La sortie similaire suivante s'affiche après la génération des clés.

Créer le fichier "authorized_keys"

Le fichier id_rsa.pub contient la clé publique de la connexion SSH, qui est stockée dans le dossier ~/.ssh/ de l'hôte distant. La machine cliente a également besoin de la clé publique pour se connecter à l'hôte distant, qui sera copiée dans la prochaine partie du didacticiel. Vous devez créer le fichier authorized_keys dans le dossier ~/.ssh de l'hôte distant qui contient la clé publique. Exécutez la commande suivante pour déplacer le fichier id_rsa.pub vers le fichier ~/.ssh/authorized_keys.

$ mv ~ / .ssh / id_rsa.pub ~ / .ssh / clés_autorisées

Vous n'obtiendrez pas d'erreur si le fichier a été déplacé correctement, comme dans la figure suivante.

Modifier le fichier de configuration

Vous devez définir certains paramètres de configuration sur l'ordinateur serveur pour établir la connexion SSH sans mot de passe. Exécutez la commande suivante pour ouvrir le fichier sshd_config avec l'éditeur nano afin de définir les valeurs de paramètre requises.

$ sudo nano / etc / ssh / sshd_config

Définissez la valeur de PasswordAuthentication sur no pour désactiver l'option de mot de passe texte pour la connexion SSH.

N° d'authentification du mot de passe

Enregistrez et fermez le fichier. Exécutez la commande suivante pour redémarrer le service SSH.

$ sudo systemctl redémarrer ssh

Exécutez la commande suivante pour définir les bits d'autorisation sur le fichier authorized_keys afin d'empêcher tout accès non autorisé à ce fichier.

$ chmod 600 ~ / .ssh / clés_autorisées

Copiez la clé publique sur l'ordinateur client

Connectez-vous maintenant à la machine cliente à partir de laquelle vous exécutez la commande ssh pour établir une connexion SSH avec l'hôte distant. Ici, deux comptes d'utilisateurs d'Ubuntu ont été utilisés pour vérifier la connexion SSH sur le serveur local. Dans ce didacticiel, un compte d'utilisateur a été utilisé comme client et un autre compte d'utilisateur a été utilisé comme serveur.

Exécutez la commande suivante pour créer un dossier nommé ~ / .ssh sur l'ordinateur client s'il n'existe pas.

$ mkdir ~ / .ssh

Exécutez la commande suivante pour copier la clé publique de l'hôte distant vers le dossier ~ / .ssh du client.

$ scp [email protected] :/home/fahmida/.ssh/id_rsa ~ / .ssh /

Vous devez fournir le mot de passe du nom d'utilisateur de l'hôte distant afin de copier la clé publique sur la machine cliente. Vous obtiendrez la sortie suivante si le fichier a été copié correctement. L'ordinateur client est maintenant prêt à établir la connexion avec l'ordinateur serveur via le service SSH.

Se connecter à l'ordinateur serveur en utilisant SSH sans mot de passe

Désormais, la clé publique est présente sur les ordinateurs client et serveur. Lorsque l'ordinateur client envoie la demande de connexion à l'ordinateur serveur avec la commande ssh, le serveur compare la clé publique du client avec la clé publique du serveur. Si les correspondances sont trouvées, la connexion est établie du client au serveur. Vous pouvez vous connecter au serveur ou à l'hôte distant à l'aide du nom d'hôte ou de l'adresse IP. Le serveur local a utilisé ce didacticiel pour montrer l'utilisation de la clé_autorisation pour établir la connexion SSH de l'ordinateur client à l'ordinateur serveur. Un compte a été utilisé comme machine serveur sur laquelle le serveur OpenSSH est installé, et un autre compte a été utilisé ici comme machine cliente. Exécutez la commande suivante sur la machine cliente pour vous connecter à la machine serveur.

$ ssh [protégé par e-mail]

La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. La sortie montre que le nom d'utilisateur de la machine cliente est "yesmin". Le nom d'utilisateur de l'ordinateur serveur est "fahmida". La connexion SSH a été établie correctement car le nom d'utilisateur est passé de "yesmin" à "fahmida". Le contenu de l'ordinateur serveur est désormais accessible sans aucun problème. Désormais, lorsque l'utilisateur exécute une commande, la sortie est générée en fonction de l'ordinateur serveur.

diplôme

L'utilisation de l'authorized_keys pour établir la connexion SSH a été expliquée dans ce tutoriel basé sur le localhost. Vous pouvez effectuer le même processus pour établir la connexion SSH pour l'hôte distant. Vous pouvez également utiliser la commande ssh-copy-id pour vous connecter en SSH au serveur présenté dans un autre didacticiel.


Ubuntu
  1. Comment générer des clés SSH sur Ubuntu 18.04

  2. Serveur SSH Ubuntu 20.04

  3. Comment installer et configurer un serveur NFS sur Ubuntu 20.04

  4. Comment installer et configurer VNC sur Ubuntu 20.04

  5. Comment installer et configurer VNC sur Ubuntu 18.04

Comment installer OpenSSH sur Ubuntu 20.04

Comment installer le serveur SSH dans Ubuntu 20.04

Comment activer le serveur SSH sur Ubuntu 22.04

Comment installer le serveur SSH sur Ubuntu 18.04 LTS

Comment installer le serveur SSH sur Ubuntu 20.04 LTS

Comment installer le serveur SSH sur Ubuntu 22.04 LTS