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 :
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 :
-rw-r--r-- 1 root root 395 12 novembre 16:25authorized_keys[root@inside01 .ssh]#ll
total 12
-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é 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 :[root@dmz01 .ssh]#ssh dmz02clé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 :
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.
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 :
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!