Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser la commande ssh pour compter les informations de cluster distribué dans Linux Shell
Utilisez des commandes de connexion à distance sans mot de passe pour permettre à une machine d'accéder aux machines d'autres clusters. Par conséquent, il y a plusieurs étapes importantes à réaliser :
Apprenez à utiliser chut
Obtenez une connexion sans mot de passe
Écrivez un programme shell
Technologie de cryptage asymétrique est une méthode de cryptage qui utilise différentes clés pour le cryptage et le déchiffrement. Parmi eux, RSA et DSA sont des méthodes de chiffrement asymétriques. Bien entendu, l'algorithme de chiffrement asymétrique a un principe, c'est-à-dire qu'il existe une paire de clés qui peuvent se chiffrer et se déchiffrer. Habituellement, cette paire de clés deviendra la clé publique et la clé privée du titulaire. La clé publique est une clé que d'autres peuvent connaître, tandis que la clé privée ne peut être connue que par son détenteur. Bien entendu, si la clé privée est divulguée à des tiers, des problèmes de sécurité des informations peuvent survenir.
Supposons : A souhaite envoyer des données cryptées à B. La première méthode est la suivante : A utilise sa propre clé privée pour chiffrer, et B utilise la clé publique de A pour déchiffrer les données après les avoir obtenues. La deuxième méthode est la suivante : A utilise la clé publique de B pour chiffrer les données, et B utilise sa propre clé privée pour déchiffrer les données après les avoir obtenues.
La connexion à distance SSH utilise la première méthode.
La méthode couramment utilisée est
ssh -i [nom du fichier de clé privée] -p [numéro de port] utilisateur@nom d'hôte [commande exécutée]
Le nom du fichier de clé privée est par défaut $HOME /.ssh/id_rsa ou $HOME/.ssh/id_dsa, le numéro de port par défaut est 22.
Par exemple :
ssh myname@128.180.146.89 #输入目标主机的密码后进行远程操作,exit命令退出
ssh-keygen #直接全部回车,先都默认
Ensuite, ce sera dans $ Un fichier de paire de clés est généré dans le répertoire HOME/.ssh/, dans lequel *.pub est unifié en un fichier de clé publique et l'autre est un fichier de clé privée.
Ensuite, copiez le contenu du fichier de clé publique dans $HOME/.ssh/authorized_keys de l'utilisateur hôte cible. La méthode de copie peut être utilisée manuellement par vous-même. Vous pouvez également utiliser la commande suivante pour obtenir
ssh-copy-id -i [nom du fichier de clé publique] user$hostname
Par exemple :
ssh-copy-id -i $HOME/.ssh/id_rsa.pub myname@128.180.146.89
Exécutez ensuite la commande de connexion à distance pour obtenir une connexion sans mot de passe. Si un mot de passe est toujours requis pour la deuxième connexion, cela peut être dû à des problèmes d'autorisation de fichiers et de répertoires de fichiers. Cela peut aussi être dû au fait que la clé privée et la clé publique de la connexion ne forment pas une paire.
Fichier sshtest.sh :
#!/bin/bash func___setenv(){ RTS_ECT_DIR="$HOME" #..... } ###################################### # # 程序主体 ###################################### #调用环境变量 func___setenv #读取机器连接信息 while read line do ssh_cmd= ssh_linkhost=`echo ${line}` while read cmdline do #空命令行跳过 if [ -z "$cmdline" ]; then continue fi #读取的命令行拼接; if [ ! -n "$ssh_cmd" ]; then ssh_cmd=`echo ${$cmdline}` ; else ssh_cmd="${ssh_cmd};"`echo ${$cmdline}` ; fi done <${RTS_ECT_DIR}/sshcmd.cfg #执行远程命令 ssh $ssh_linkhost $ssh_cmd </dev/null done <${RTS_ECT_DIR}/sshlink.cfg
Fichier sshlink.cfg : Vous devez d'abord configurer la clé avant de pouvoir vous connecter sans mot de passe
myname@128.180.146.89 myName@128.180.146.90 Myname@128.180.146.91
Fichier sshcmd.cfg : à remplir en fonction de votre propres besoins
ps -ef|grep java df -h
Si l'avant-dernière ligne du code ci-dessus est remplacée par
ssh $ssh_linkhost $ssh_cmd
, alors la boucle while ne bouclera qu'une seule fois. Parce que la ligne while read placera les informations de boucle dans l'entrée standard et que la commande ssh lira tout le tampon d'entrée, donc while n'est pas dans la boucle. La commande ssh doit donc être redirigée
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!