GNU/Linux >> Znalost Linux >  >> Linux

Příkaz sshpass:Neinteraktivní ověřování hesla pomocí SSH

Přehled

Správci systému Linux se běžně přihlašují k serverům Linux buď zadáním hesla, nebo pomocí ověřování na základě klíče. sshpass je nástroj, který nám umožňuje automaticky dodávat hesla do příkazového řádku, aby bylo možné spouštět automatické skripty podle přání uživatelů. sshpass dodává heslo do výzvy ssh pomocí vyhrazeného tty, čímž klame ssh, aby se domníval, že heslo zadává interaktivní uživatel.

Některá z běžných použití sshpass

1. přijímání záloh na vzdálený server
2. provádění příkazů na systémech v určený čas.

Instalace sshpass

1. Distribuce založené na Centos:

Nastavte úložiště EPEL z https://fedoraproject.org/wiki/EPEL a poté jako root:

# yum -y install sshpass

2. Distribuce založené na Ubuntu/Debainu:

Jako root spusťte:

# apt-get install sshpass

3. Zkompilujte a nainstalujte ze zdroje:

# wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
# tar -zxvf sshpass.tar.gz 
# cd sshpass-1.05/ 
# ./configure 
# make 
# make install
# which sshpass
/usr/local/bin/sshpass

Získání nápovědy

# sshpass -h
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters

-f filename   Take password to use from file
-d number     Use number as file descriptor for getting password
-p password   Provide password as argument (security unwise)
-e            Password is passed as env-var "SSHPASS" With no parameters – password will be taken from stdin
-h            Show help (this screen)
-V            Print version information

Mělo by být použito maximálně jedno z -f, -d, -p nebo -e

Příklad 1:zadejte heslo pomocí ssh

# sshpass -p 'password' ssh ldap.thegeekdiary.com -l root -o StrictHostKeyChecking=no

Kde:

heslo je heslo vašeho serveru (ldap.thegeekdiary.com). ‘StrictHostKeyChecking=no ‘ se používá k řízení přihlášení k počítačům, jejichž hostitelský klíč není znám nebo se změnil.

PŘÍKLAD:2 PRO SPUŠTĚNÍ NĚKTERÉHO PŘÍKAZU NA VZDÁLENÉM SERVERU VIZ KONTROLA UPTIME A UNAME

Příklad 2:Spuštění nějakého příkazu na vzdáleném serveru

Zkusme spustit 2 příkazy „uptime“ a „uname“ na vzdáleném serveru pomocí příkazu sshpass:

# sshpass -p 'password' ssh ldap.thegeekdiary.com -l root -o StrictHostKeyChecking=no "uptime;uname -a"

Ukázkový výstup:

18:49:34 up 21 days, 18:49,  3 users,  load average: 0.01, 0.00, 0.00
Linux ldap.thegeekdiary.com 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

Příklad 3:Kopírování souboru pomocí rsync na server

V našem případě kopírujeme soubor sshpass.tar.gz na vzdálený server ldap.thegeekdiary.com

# sshpass -p 'password' rsync -av --progress sshpass.tar.gz [email protected]:/tmp/

Výstup výše uvedeného příkazu:

sending incremental file list
sshpass.tar.gz
98362 100% 62.56MB/s 0:00:00 (xfer#1, to-check=0/1)
sent 98472 bytes received 31 bytes 197006.00 bytes/sec
total size is 98362 speedup is 1.00
root@server1:/home/thegeekdiary#

Příklad 4:smyčka for pro kopírování na vzdálené servery

Vytvořte soubor následujícím způsobem:

# touch /tmp/scr

Soubor by měl obsahovat názvy hostitelů:

server2.thegeekdiary.com
server3.thegeekdiary.com
server4.thegeekdiary.com
server5.thegeekdiary.com
# for i in `cat /tmp/scr`; do echo " ";echo "###$i####"; sshpass -p 'password' rsync -av --progress sshpass.tar.gz root@$i:/tmp/; done

Výstup příkazu výše:

###server2.thegeekdiary.com####
sending incremental file list
sent 54 bytes received 12 bytes 132.00 bytes/sec
total size is 98362 speedup is 1490.33

###server3.thegeekdiary.com####
sending incremental file list
sent 54 bytes received 12 bytes 44.00 bytes/sec
total size is 98362 speedup is 1490.33

###server4.thegeekdiary.com####
sending incremental file list
sent 54 bytes received 12 bytes 132.00 bytes/sec
total size is 98362 speedup is 1490.33

###server5.thegeekdiary.com####
sending incremental file list
sent 54 bytes received 12 bytes 132.00 bytes/sec
total size is 98362 speedup is 1490.33


Linux
  1. Správa uživatelů Linuxu pomocí příkazu passwd

  2. SSHPass:Jak SSH na server pomocí skriptu bez hesla (neinteraktivně)

  3. Ssh – Stále dostáváte výzvu k zadání hesla pomocí Ssh s ověřováním pomocí veřejného klíče?

  1. Jak zakázat přihlášení SSH pomocí hesla

  2. Jak nastavit heslo pro soubory ZIP s příkazem ve všech operačních systémech?

  3. Uživatelské jméno a heslo v příkazovém řádku s sshfs

  1. Automatizace hesel SSH v Linuxu pomocí sshpass

  2. Ssh přihlášení s čistým textem heslo jako parametr?

  3. Jak vzdáleně spustit příkaz ssh a příkaz sudo bez hesla