GNU/Linux >> LINUX-Kenntnisse >  >> Linux

sshpass-Befehl:Nicht interaktive Kennwortauthentifizierung mit SSH

Übersicht

Linux-Systemadministratoren melden sich normalerweise bei den Linux-Servern an, indem sie entweder ein Kennwort angeben oder eine schlüsselbasierte Authentifizierung verwenden. sshpass ist ein Tool, mit dem wir Passwörter automatisch an die Eingabeaufforderung liefern können, sodass automatisierte Skripte nach Wunsch der Benutzer ausgeführt werden können. sshpass liefert das Passwort an die ssh-Eingabeaufforderung mit dediziertem tty und täuscht ssh vor, zu glauben, dass ein interaktiver Benutzer ein Passwort liefert.

Einige der üblichen Verwendungen von sshpass

1. Backups auf einen Remote-Server bringen
2. Ausführen von Befehlen auf Systemen zu einem bestimmten Zeitpunkt.

sshpass-Installation

1. Centos-basierte Distributionen:

Richten Sie das EPEL-Repository von https://fedoraproject.org/wiki/EPEL ein und führen Sie dann als Root aus:

# yum -y install sshpass

2. Ubuntu/Debain-basierte Distributionen:

Als Root ausführen:

# apt-get install sshpass

3. Kompilieren und installieren Sie von der Quelle:

# 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

Hilfe bekommen

# 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

Es sollte höchstens eines von -f, -d, -p oder -e verwendet werden

Beispiel 1:Passwort mit ssh angeben

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

Wo:

Passwort ist das Passwort Ihres Servers (ldap.thegeekdiary.com). ‘StrictHostKeyChecking=no ‘ wird verwendet, um Anmeldungen an Rechnern zu kontrollieren, deren Hostschlüssel nicht bekannt ist oder sich geändert hat.

BEISPIEL:2, UM EINEN BEFEHL AUF DEM REMOTE-SERVER AUSZUFÜHREN, VIZ UPTIME UND UNAME PRÜFEN

Beispiel 2:So führen Sie einen Befehl auf dem Remote-Server aus

Lassen Sie uns versuchen, die beiden Befehle „uptime“ und „uname“ auf dem Remote-Server mit dem sshpass-Befehl auszuführen:

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

Beispielausgabe:

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

Beispiel 3:Kopieren einer Datei mit rsync auf einen Server

In unserem Fall kopieren wir eine Datei sshpass.tar.gz auf einen entfernten Server ldap.thegeekdiary.com

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

Ausgabe des obigen Befehls:

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#

Beispiel 4:for-Schleife zum Kopieren auf entfernte Server

Erstellen Sie eine Datei wie folgt:

# touch /tmp/scr

Die Datei sollte den Namen des Hosts enthalten:

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

Ausgabe des obigen Befehls:

###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. SSH-Passwortautomatisierung in Linux mit sshpass

  2. Ssh – Erhalten Sie immer noch eine Passwortabfrage mit Ssh mit Authentifizierung mit öffentlichem Schlüssel?

  3. Ssh-Anmeldung mit Klartext-Passwort als Parameter?

  4. Oring mit True in einem Befehl über SSH?

  5. So erlauben Sie ssh mit leeren Passwörtern in Linux

SSH-Passworttest mit Hydra unter Kali Linux

So deaktivieren Sie die SSH-Passwortauthentifizierung auf Linux VPS

SSH-Befehl

Deaktivieren Sie die SSH-Passwortauthentifizierung für bestimmte Benutzer oder Gruppen

So übergeben Sie das Passwort an den SSH-Befehl in Linux

So richten Sie die Passwortauthentifizierung mit Apache unter Ubuntu 18.04 ein