Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwenden Sie den Befehl ssh, um verteilte Clusterinformationen in der Linux-Shell zu zählen
Verwenden Sie passwortfreie Remote-Anmeldebefehle, um einer Maschine den Zugriff auf Maschinen in anderen Clustern zu ermöglichen. Daher sind mehrere wichtige Schritte zu erreichen:
Erfahren Sie, wie man shh verwendet.
Erreichen Sie eine passwortfreie Anmeldung.
Schreiben Sie ein Shell-Programm Eine Verschlüsselungsmethode, die unterschiedliche Schlüssel zur Ver- und Entschlüsselung verwendet. Darunter sind RSA und DSA asymmetrische Verschlüsselungsmethoden. Natürlich hat der asymmetrische Verschlüsselungsalgorithmus eine Prämisse, das heißt, es gibt ein Schlüsselpaar, das sich gegenseitig verschlüsseln und entschlüsseln kann. Normalerweise wird dieses Schlüsselpaar zum öffentlichen Schlüssel und zum privaten Schlüssel des Inhabers. Der öffentliche Schlüssel ist ein Schlüssel, den andere kennen können, während der private Schlüssel nur dem Inhaber bekannt sein kann. Wenn der private Schlüssel an Außenstehende weitergegeben wird, kann es natürlich zu Problemen mit der Informationssicherheit kommen.
3. SSH-Befehl
Die häufig verwendete Methode ist
ssh -i [Name der privaten Schlüsseldatei] -p [Portnummer] Benutzer@Hostname [ausgeführter Befehl]Der Standardname der privaten Schlüsseldatei ist $HOME /.ssh/id_rsa oder $HOME/.ssh/id_dsa, die Portnummer ist standardmäßig 22.
Zum Beispiel:ssh myname@128.180.146.89 #输入目标主机的密码后进行远程操作,exit命令退出4. Verwenden Sie ssh-keygen und ssh-copy-id, um eine passwortfreie Anmeldung zu erreichen
ssh-keygen #直接全部回车,先都默认
Dann wird es in $ Im Verzeichnis HOME/.ssh/ wird eine Schlüsselpaardatei generiert, in der *.pub zu einer öffentlichen Schlüsseldatei und die andere zu einer privaten Schlüsseldatei zusammengefasst wird.
Kopieren Sie als Nächstes den Inhalt der öffentlichen Schlüsseldatei nach $HOME/.ssh/authorized_keys des Zielhostbenutzers. Die Kopiermethode kann manuell von Ihnen selbst durchgeführt werden. Sie können auch den folgenden Befehl verwenden, um Folgendes zu erreichen:
ssh-copy-id -i [Name der öffentlichen Schlüsseldatei] Benutzer$HostnameZum Beispiel:
ssh-copy-id -i $HOME/.ssh/id_rsa.pub myname@128.180.146.89
Führen Sie dann den Remote-Anmeldebefehl aus, um eine passwortfreie Anmeldung zu erreichen. Wenn für die zweite Anmeldung immer noch ein Passwort erforderlich ist, kann dies an Problemen mit der Datei- und Dateiverzeichnisberechtigung liegen. Es kann auch daran liegen, dass der verbundene private Schlüssel und der öffentliche Schlüssel kein Paar sind. 5. Linux Shell Script Implementation
sshtest.sh-Datei:
#!/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
sshlink.cfg-Datei: Sie müssen zuerst den Schlüssel konfigurieren, bevor Sie sich ohne Passwort anmelden können.
myname@128.180.146.89 myName@128.180.146.90 Myname@128.180.146.91
ps -ef|grep java df -h
6. Das Problem, dass ssh nur einmal eine Schleife durchführt
Wenn die vorletzte Zeile des obigen Codes in
ssh $ssh_linkhost $ssh_cmd
geändert wird, wird die while-Schleife nur einmal durchlaufen. Denn while read line fügt die Schleifeninformationen in die Standardeingabe ein und der SSH-Befehl liest den gesamten Eingabepuffer, sodass while nicht in der Schleife ist. Daher muss der SSH-Befehl umgeleitet werden
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Befehl ssh, um verteilte Clusterinformationen in der Linux-Shell zu zählen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!