[10] Paralel SSH / Równoległe SSH
24 maja 2020Można skorzystać z MPSSH (Mass Parallel Secure Shell), aby podłączyć się jednocześnie do kilku hostów za pomocą SSH.
[1] Instalujemy MPSSH.
# instalujemy z EPEL
[root@lsr01vm ~]# dnf --enablerepo=epel install mpssh
[2] Podstawy MPSSH.
MPSSH wymaga autentykacji za pomocą pary kluczy bez haseł, lub jeśli klucze hasła posiadają to wpisanie ich za pomocą SSH-Agent’a.
# napiszmy plik z hostami, z którymi chcemy się łączyć [paralell@lsr01vm ~]$ mcedit ssh_targets 192.168.1.3 192.168.1.4 # uruchomimy komendę [uname] na docelowych hostach [paralell@lsr01vm ~]$ mpssh -f ssh_targets "uname -a" MPSSH - Mass Parallel Ssh Ver.1.3.3 (c)2005-2013 Nikolay Denev <ndenev@gmail.com> [*] read (2) hosts from the list [*] executing "uname -a" as user "paralell" [*] spawning 2 parallel ssh sessions 192.168.1.3 -> Linux lsr02vm.zicher.lab 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 192.168.1.4 -> Linux lsr03vm.zicher.lab 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Done. 2 hosts processed. # a teraz wyniki zapiszemy do pliku osobnego dla każdego hosta [paralell@lsr01vm ~]$ mpssh -b -o ./output -f ssh_targets "cat /etc/passwd" MPSSH - Mass Parallel Ssh Ver.1.3.3 (c)2005-2013 Nikolay Denev <ndenev@gmail.com> [*] read (2) hosts from the list [*] executing "cat /etc/passwd" as user "paralell" [*] blind mode enabled [*] creating output directory : ./output [*] spawning 2 parallel ssh sessions Done. 2 hosts processed. [paralell@lsr01vm ~]$ ll ./output razem 8 -rw-r--r--. 1 paralell paralell 1502 05-24 18:41 paralell@192.168.1.3.out -rw-r--r--. 1 paralell paralell 1502 05-24 18:41 paralell@192.168.1.4.out # no i sprawdzimy co w nich jest ;-) [paralell@lsr01vm ~]$ cat ./output/paralell\@192.168.1.3.out root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin ... ... [paralell@lsr01vm ~]$ cat ./output/paralell\@192.168.1.4.out root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin ... ...