GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment générer et configurer des clés SSH sur CentOS 7

Présentation

Secure Shell (SSH ) est un protocole crypté utilisé par les utilisateurs de Linux pour se connecter à leurs serveurs distants.

En règle générale, les clients peuvent accéder à leurs serveurs de deux manières :en utilisant une authentification basée sur un mot de passe ou une authentification basée sur une clé publique.

L'utilisation de clés SSH pour l'authentification est fortement recommandée, comme alternative plus sûre aux mots de passe.

Ce didacticiel vous guidera à travers les étapes de comment générer et configurer des clés SSH sur CentOS 7. Nous couvrons également la connexion à un serveur distant à l'aide des clés et la désactivation de l'authentification par mot de passe .

Avant de commencer

1. Vérifiez les clés existantes

Avant toute installation, il est judicieux de vérifier s'il existe des clés existantes sur les machines clientes.

Ouvrez le terminal et listez toutes les clés publiques stockées avec la commande suivante :

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

La sortie vous informe de toutes les clés générées actuellement sur le système. S'il n'y en a pas, le message vous indique qu'il ne peut pas accéder à /.ssh/id_*.pub , car il n'existe aucun fichier ou répertoire de ce type.

2. Vérifiez que SSH est installé

Pour vérifier si le package est installé, exécutez la commande :

ssh -V

Si vous avez déjà SSH, la sortie vous indique quelle version il exécute. Actuellement, la dernière version est OpenSSH 8.0/8.0p1 .

Étapes de création de clés SSH sur CentOS

Étape 1 :Créer une paire de clés SSH

1. Commencez par vous connecter à la machine source (serveur local) et créez une paire de clés RSA 2048 bits en utilisant la commande :

ssh-keygen -t rsa

Si vous souhaitez renforcer les mesures de sécurité, vous pouvez créer une clé de 4 096 bits en ajoutant le drapeau -b 4096 :

ssh-keygen -t rsa -b 4096

2. Après avoir saisi la commande, vous devriez voir l'invite suivante :

Generating public/private rsa key pair.
Enter file in which to save the key (home/your_username/.ssh/id_rsa):

3. Pour enregistrer le fichier dans le répertoire suggéré, appuyez sur Entrée . Vous pouvez également spécifier un autre emplacement.

4. Ensuite, l'invite continuera avec :

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

Bien que la création d'une phrase de passe ne soit pas obligatoire, elle est fortement conseillée.

5. Enfin, la sortie se terminera en spécifiant les informations suivantes :

Your identification has been saved in home/your_username/.ssh/id_rsa.
Your public key has been saved in home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk
[email protected]
The key's randomart image is:
+------[RSA 3072]-------+
|       .oo.            |
|        +o+.           |
|      + +.+            |
| o  +          S .     |
|      .    E  .   . =.o|
|    .  +       .   [email protected]|
|        +   .     oo*=O|
|   oo            . .+o+|
|                 o=ooo=|
+------ [SHA256] ------+

Vous devez maintenant ajouter la clé publique au serveur CentOS distant.

Étape 2 :Copier la clé publique sur le serveur CentOS

Vous pouvez copier la clé SSH publique sur le serveur distant en utilisant plusieurs méthodes différentes :

  1. à l'aide du script ssh-copy-id
  2. à l'aide de la copie sécurisée (scp)
  3. copie manuelle de la clé

La méthode la plus rapide et la plus simple consiste à utiliser ssh-copy-id . Si l'option est disponible, nous vous recommandons de l'utiliser. Sinon, essayez l'un des deux autres.

Copier la clé publique à l'aide de ssh-copy-id

1. Commencez par saisir la commande suivante, en spécifiant le compte utilisateur SSH et l'adresse IP de l'hôte distant :

ssh-copy-id [email protected]_host

Si c'est la première fois que votre ordinateur local accède à ce serveur distant spécifique, vous recevrez la sortie suivante :

The authenticity of host '104.0.316.1 (104.0.316.1)' can't be established.
ECDSA key fingerprint is KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk.
Are you sure you want to continue connecting (yes/no)? yes

2. Confirmez la connexion - tapez oui et appuyez sur Entrée .

3. Une fois qu'il a localisé la id_rsa.pub key créé sur la machine locale, il vous demandera de fournir le mot de passe du compte distant. Tapez le mot de passe et appuyez sur Entrée .

4. Une fois la connexion établie, il ajoute la clé publique sur le serveur distant. Cela se fait en copiant le ~/.ssh/id_rsa.pub vers le ~/.ssh du serveur distant annuaire. Vous pouvez le localiser sous le nom authorized_keys .

5. Enfin, le résultat vous indique le nombre de clés ajoutées, ainsi que des instructions claires sur la marche à suivre :

Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Copier la clé publique à l'aide d'une copie sécurisée

1. Tout d'abord, configurez une connexion SSH avec l'utilisateur distant :

ssh [email protected]_host

2. Ensuite, créez le ~/.ssh ainsi que les authorized_keys fichier :

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

3. Utilisez le chmod commande pour modifier l'autorisation du fichier :

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

chmod 700 rend le fichier exécutable , tandis que chmod 600 permet à l'utilisateur de lire et écrire le fichier.

4. Maintenant, ouvrez une nouvelle session de terminal, sur l'ordinateur local.

5. Copiez le contenu de id_rsa.pub (la clé publique SSH) aux authorized_keys créés précédemment fichier sur le serveur CentOS distant en tapant la commande :

scp ~/.ssh/id_rsa.pub [email protected]_host:~/.ssh/authorized_keys

Avec cela, la clé publique a été stockée en toute sécurité sur le compte distant.

Copier manuellement la clé publique

1. Pour ajouter manuellement la clé SSH publique à la machine distante, vous devez d'abord ouvrir le contenu de ~/.ssh/id_rsa.pub fichier :

cat ~/.ssh/id_rsa.pub

2. Comme dans l'image ci-dessous, la clé commence par ssh-rsa et se termine par le nom d'utilisateur de l'ordinateur local et le nom d'hôte de la machine distante :


3. Copiez le contenu du fichier, car vous en aurez besoin plus tard.

4. Ensuite, dans la fenêtre du terminal, connectez-vous au serveur distant sur lequel vous souhaitez copier la clé publique. Utilisez la commande suivante pour établir la connexion :

ssh [email protected]_host

5. Créez un répertoire ~/.ssh et authorized_keys fichier sur le serveur CentOS avec la commande suivante :

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

6. Modifiez leur autorisation de fichier en saisissant :

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

7. Ensuite, ouvrez les authorized_keys fichier avec un éditeur de votre choix. Par exemple, pour l'ouvrir avec Nano, tapez :

nano authorized_keys

8. Ajoutez la clé publique, préalablement copiée à l'étape 2 de cette section, dans une nouvelle ligne dans (sous le contenu existant).

9. Enregistrez les modifications et fermez le fichier.

10. Enfin, connectez-vous au serveur pour vérifier que tout est correctement configuré.

Étape 3 :Connectez-vous au serveur distant à l'aide de clés SSH

Une fois que vous avez terminé les étapes précédentes (création d'une paire de clés RSA et copie de la clé publique sur le serveur CentOS), vous pourrez vous connecter à l'hôte distant sans saisir le mot de passe du compte distant.

Il vous suffit de saisir la commande suivante :

ssh [email protected]_host

Si vous n'avez pas spécifié de phrase secrète lors de la création de la paire de clés SSH, vous vous connecterez automatiquement au serveur distant.

Sinon, saisissez la phrase de passe que vous avez fournie lors des étapes initiales et appuyez sur Entrée .

Une fois que le shell aura confirmé la correspondance de clé, il ouvrira une nouvelle session pour une communication directe avec le serveur.

Étape 4 :Désactiver l'authentification par mot de passe

Bien que vous ayez réussi à accéder au serveur CentOS sans avoir à fournir de mot de passe, un système d'authentification par mot de passe fonctionne toujours sur la machine. Cela en fait une cible potentielle pour les attaques par force brute.

Vous devez désactiver entièrement l'authentification par mot de passe en suivant les étapes décrites.

1. À l'aide des clés SSH, connectez-vous au serveur CentOS distant disposant des privilèges d'administration :

ssh [email protected]_host

2. Ensuite, ouvrez le fichier de configuration du démon SSH à l'aide d'un éditeur de texte de votre choix :

sudo nano /etc/ssh/sshd_config

3. Recherchez la ligne suivante dans le fichier :

PasswordAuthentication yes

4. Modifiez la configuration en modifiant le yes valeur à no . Ainsi, la directive devrait être la suivante :

PasswordAuthentication no

5. Enregistrez le fichier et quittez l'éditeur de texte.
6. Pour activer les modifications, redémarrez le sshd service en utilisant la commande :

sudo systemctl restart sshd.service

7. Vérifiez que la connexion SSH au serveur fonctionne toujours correctement. Ouvrez une nouvelle fenêtre de terminal et tapez la commande :

ssh [email protected]_host

Cent OS
  1. Comment configurer des clés SSH

  2. Configurer les clés SSH sur CentOS 7 - Processus étape par étape ?

  3. Comment configurer les clés SSH sur CentOS 8

  4. Comment configurer des clés SSH sur Ubuntu 16.04

  5. Comment configurer des clés SSH sur Ubuntu 18.04

Comment configurer des clés SSH sur Debian 9

Comment configurer des clés SSH sur Debian 10

Comment configurer les clés SSH – Windows OS ?

Comment générer une clé SSH dans CentOS 8

Comment configurer une clé SSH sur un serveur Plesk

Comment configurer des clés SSH sur Debian 11 Linux