GNU/Linux >> Tutoriales Linux >  >> Linux

Comando sshpass:autenticación de contraseña no interactiva con SSH

Resumen

Los administradores del sistema Linux normalmente inician sesión en los servidores Linux proporcionando una contraseña o usando autenticación basada en claves. sshpass es una herramienta que nos permite proporcionar automáticamente contraseñas al símbolo del sistema para que los usuarios puedan ejecutar scripts automatizados según lo deseen. sshpass proporciona la contraseña al aviso de ssh usando tty dedicado, engañando a ssh para que crea que un usuario interactivo está proporcionando una contraseña.

Algunos de los usos comunes de sshpass

1. llevar copias de seguridad a un servidor remoto
2. ejecutar comandos en los sistemas en un momento específico.

Instalación de sshpass

1. Distribuciones basadas en Centos:

Configure el repositorio EPEL desde https://fedoraproject.org/wiki/EPEL y luego, como root, ejecute:

# yum -y install sshpass

2. Distribuciones basadas en Ubuntu/Debain:

Como root ejecute:

# apt-get install sshpass

3. Compile e instale desde la fuente:

# 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

Obtención de ayuda

# 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

Se debe usar como máximo uno de -f, -d, -p o -e

Ejemplo 1:proporcionar contraseña con ssh

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

donde:

contraseña es la contraseña de su servidor (ldap.thegeekdiary.com). ‘StrictHostKeyChecking=no ‘ se utiliza para controlar los inicios de sesión en máquinas cuya clave de host no se conoce o ha cambiado.

EJEMPLO:2 PARA EJECUTAR ALGÚN COMANDO EN EL SERVIDOR REMOTO VIZ COMPROBAR EL TIEMPO DE ACTIVIDAD Y NOMBRE

Ejemplo 2:Para ejecutar algún comando en el servidor remoto

Intentemos ejecutar 2 comandos "uptime" y "uname" en el servidor remoto usando el comando sshpass:

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

Salida de muestra:

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

Ejemplo 3:Copiar un archivo usando rsync a un servidor

En nuestro caso estamos copiando un archivo sshpass.tar.gz a un servidor remoto ldap.thegeekdiary.com

# sshpass -p 'password' rsync -av --progress sshpass.tar.gz root@ldap.thegeekdiary.com:/tmp/

Salida del Comando anterior:

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#

Ejemplo 4:bucle for para copiar en servidores remotos

Cree un archivo como el siguiente:

# touch /tmp/scr

El archivo debe contener el nombre de los hosts:

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

Salida del comando anterior:

###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. ¿Inicio de sesión Ssh con contraseña de texto claro como parámetro?

  2. ¿Oring con True en un comando sobre Ssh?

  3. Cómo deshabilitar el inicio de sesión SSH con contraseña

  4. Cómo permitir ssh con contraseñas vacías en Linux

  5. Rsync con SSH solicitando contraseña remota

Prueba de contraseña SSH con Hydra en Kali Linux

Cómo deshabilitar la autenticación de contraseña SSH en Linux VPS

Comando SSH

Deshabilitar la autenticación de contraseña SSH para un usuario o grupo específico

Cómo pasar la contraseña al comando SSH en Linux

Cómo configurar la autenticación de contraseña con Apache en Ubuntu 18.04