Maison  >  Article  >  Tutoriel système  >  Comment configurer rapidement un accès SSH sans mot de passe dans un cluster Linux

Comment configurer rapidement un accès SSH sans mot de passe dans un cluster Linux

WBOY
WBOYavant
2024-01-16 19:15:05522parcourir

Comment configurer rapidement un accès SSH sans mot de passe dans un cluster Linux

Dans la vie quotidienne, que ce soit dans un environnement de test ou dans un environnement de production, lors de l'installation et de la configuration de plusieurs serveurs (clusters), il est souvent nécessaire de mettre en place un accès SSH sans mot de passe aux serveurs du cluster. Par exemple, l'installation et la configuration de clusters tels que Hadoop et HBase, ou de plusieurs serveurs nécessitant une configuration SSH sans mot de passe pour faciliter l'exploitation et la maintenance ultérieures.

Sur la base du processus récent de mise en place d'un environnement de test, je vais expliquer comment configurer rapidement un accès SSH mutuel à plusieurs serveurs sans mot de passe. Elle se divise principalement en plusieurs étapes : modifier le nom d'hôte, configurer la clé secrète du serveur d'agrégation, agréger les clés secrètes des autres serveurs, copier le fichier de clé d'agrégation, générer le fichier Know_hosts et copier le fichier Know_hosts.

1. Planification du cluster

IP de l'hôte

Nom d'hôte

10.141.93.101

dmz01

10.141.93.102

dmz02

10.141.93.103

à l'intérieur01

10.141.93.104

à l'intérieur02

10.141.93.105

à l'intérieur03

10.141.93.106

à l'intérieur04

10.141.93.107

à l'intérieur05

10.141.93.108

à l'intérieur06

10.141.93.109

à l'intérieur07

10.141.93.110

à l'intérieur08

10.141.93.111

à l'intérieur09

10.141.93.112

à l'intérieur10

10.141.93.113

à l'intérieur11

10.141.93.114

à l'intérieur12

10.141.93.115

à l'intérieur13

10.141.93.116

à l'intérieur14

10.141.93.117

à l'intérieur15

10.141.93.118

à l'intérieur16

Le cluster compte au total 18 serveurs, répartis en 2 serveurs dans la zone DMZ et 16 serveurs dans la zone INSIDE. Principalement utilisé pour les serveurs Web et les serveurs d'applications, les bases de données, les caches, etc. Afin de faciliter le déploiement d'applications et la gestion des serveurs du cluster, 18 serveurs sont configurés pour un accès mutuel SSH sans mot de passe.

2. Modifier le nom d'hôte

Quelle que soit l'installation initiale du système ou de l'hôte cloud, le nom d'hôte "localhost" ou "VM_75_173_centos" n'est pas facile à distinguer la fonction du serveur. Par conséquent, il est facile à installer, à déployer et à entretenir, et le nom d'hôte sera remodifié.
Pour modifier le nom d'hôte, utilisez la commande suivante :

hostnamectl set-hostname inside01

Utilisez la commande ci-dessus pour modifier le nom d'hôte et reconnectez-vous via ssh. Vous verrez que le nom d'hôte a été modifié.

3. Configurez la clé secrète du serveur d'agrégation

Le serveur dit d'agrégation ici est un serveur dans le cluster sélectionné, puis d'autres serveurs effectuent SSH avec lui sans confiance de mot de passe. Cet article sélectionne dmz01 (10.141.93.101) comme serveur d'agrégation. Le diagramme de relation est le suivant :

Comment configurer rapidement un accès SSH sans mot de passe dans un cluster Linux

D'autres serveurs effectuent une configuration de confiance sans mot de passe pour la connexion SSH à dmz01. Ici, dmz01 est le serveur d'agrégation.

La commande pour configurer la clé secrète du serveur d'agrégation est la suivante :

[root@dmz01 ~]# ssh-keygen -t rsa

Génération d'une paire de clés rsa publique/privée.

Entrez le fichier dans lequel enregistrer la clé (/root/.ssh/id_rsa) : [Entrez la clé]

Entrez la phrase secrète (vide s'il n'y a pas de phrase secrète) : [Touche Entrée]

Entrez à nouveau la même phrase secrète : [Entrée la touche]

Votre identification a été enregistrée dans /root/.ssh/id_rsa.

Votre clé publique a été enregistrée dans /root/.ssh/id_rsa.pub.

L'empreinte digitale de la clé est :

43:0d:08:18:ec:9e:d6:1f:ea:5f:04:30:0f:66:26:41 root@dmz01

L'image aléatoire de la clé est :

+--[RSA 2048]----+

|oE+O.. |

|o= =.o |

| . o . 

| .                           

| .oS |

| + .. .

| .o .. |

| ..                           

|.... |

+------------------+

Entrez le répertoire "/root/.ssh", copiez et générez le fichier "authorized_keys", utilisez la commande suivante :

cat id_rsa.pub >>

Les résultats sont les suivants :

[root@inside01 .ssh]#ll

total 12
-rw-r--r-- 1 root root 395 12 novembre 16:25authorized_keys

-rw------- 1 racine racine 1675 12 novembre 16:24 id_rsa

-rw-r--r-- 1 racine racine 395 12 novembre 16:24 id_rsa.pub



4. Copiez les autres clés du serveur

Après avoir configuré la clé secrète du serveur d'agrégation dans la section 3, vous devez configurer les clés secrètes de 17 serveurs dont dmz02, inside01,..., inside16. La méthode est la même que la commande de la section 3.

Après avoir configuré les clés secrètes des 17 autres serveurs, vous devez copier les clés secrètes des 17 serveurs sur le serveur d'agrégation dmz01. La commande de copie est la suivante : [root@dmz01 .ssh]# ssh-copy-id -i dmz01

[root@inside01 .ssh]# ssh-copy-id -i dmz01


Copiez les clés secrètes des 17 stations dans dmz01 dans l'ordre.


5. Copiez le fichier de clé d'agrégation

Copiez les fichiers de clés agrégés du serveur d'agrégation vers le répertoire "/root/.ssh" des 17 autres serveurs. La commande est la suivante :

[root@dmz01 .ssh]# scp authorised_keys dmz02:/root/.ssh/

[root@dmz01 .ssh]# scp authorised_keys inside01:/root/.ssh/

[root@dmz01 .ssh]# scpauthorized_keys inside16:/root/.ssh/
Mot de passe de root@inside16 :

clés_autorisées 100 % 7104 6,9 Ko/s 00:00


Copiez le fichier de clé secrète "authorized_keys" via scp comme indiqué ci-dessus. Ce processus nécessite la saisie d'un mot de passe.
Vérification Ssh sans mot de passe :

[root@dmz01 .ssh]#ssh dmz02

L'authenticité de l'hôte 'dmz02 (10.141.68.179)' ne peut pas être établie.
L'empreinte digitale de la clé ECDSA est 22:49:b2:5c:7c:8f:73:56:89:29:8a:bd:56:49:74:66.

Etes-vous sûr de vouloir continuer à vous connecter (oui/non) ? Attention : 'dmz02,10.141.68.179' (ECDSA) ajouté définitivement à la liste des hôtes connus.
Dernière connexion : samedi 12 novembre 2016 à 17:19:19 du 10.141.93.186

Comme le montre ce qui précède, "ssh dmz02", lorsque ssh se connecte au serveur dmz02, il n'est pas nécessaire de saisir un mot de passe. Mais il indique que dmz02 doit être ajouté au fichier de liste « hôtes connus » de dmz01. De cette façon, la prochaine fois que vous accéderez à dmz02 via ssh, vous ne serez plus invité à ajouter à la liste des hôtes connus.

6. Générer le fichier Know_hosts

Ssh les 17 autres serveurs du serveur d'agrégation dans l'ordre et parcourez les paramètres précédents sans mot de passe. Il n'est pas nécessaire de saisir un mot de passe, mais des invites vous invitent à rejoindre la liste des hôtes connus.
Remarque : Afin d'ajouter votre propre dmz01 au fichier d'hôtes connus, vous devez également taper "[root@dmz01.ssh]# ssh dmz01".

Le contenu du fichier Know_hosts finalement généré est le suivant :

Comment configurer rapidement un accès SSH sans mot de passe dans un cluster Linux

Afficher le nombre de lignes dans le fichier know_hosts :

[root@dmz01 .ssh]# wc -l known_hosts
18 hôtes_connus

Vous pouvez voir une ligne pour chaque hôte, indiquant que dmz01 connaît les 18 serveurs, y compris lui-même.

7. Copiez le fichier Know_hosts

Après la section 6, générez les paramètres d'hôte connus de 18 serveurs pour dmz01 et copiez scp le fichier /root/.ssh/know_hosts de dmz01 sur les 17 autres serveurs.
Vérification de connexion SSH sans mot de passe :

[root@dmz01 .ssh]#ssh inside10
Dernière connexion : mar 15 novembre 2016 15:01:18 du 10.141.93.186
[root@inside10 ~]#ssh inside15
Dernière connexion : samedi 12 novembre 2016 à 17:52:29 à partir du 10.141.93.186
[root@inside15 ~]#ssh dmz02
Dernière connexion : samedi 12 novembre 2016 à 20:05:59 du 10.141.93.186
[root@dmz02 ~]#ssh dmz01
Dernière connexion : jeu. 17 novembre 23:56:05 2016 du 218.10.89.246
[root@dmz01 ~]#ssh inside15
Dernière connexion : vendredi 18 novembre 2016 à 00:23:54 à partir du 10.141.114.152

Séquence de connexion Ssh sans mot de passe : dmz01àinside10àinside15àdmz02àdmz01àinside15.

8. Résumé

Cet article concerne principalement les commandes suivantes :

hostnamectl set-hostname inside01
ssh-keygen -t rsa
ssh-copy-id -i dmz01

C'est tout pour cet article. J'espère que vous soutiendrez ce site à l'avenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer