SSHPASS Una herramienta excelente para el inicio de sesión SSH no interactivo nunca se use en el servidor de producción

SSHPASS Una herramienta excelente para el inicio de sesión SSH no interactivo nunca se use en el servidor de producción

En la mayoría de los casos, los administradores del sistema de Linux inician sesión en servidores remotos de Linux que usan SSH, ya sea proporcionando una contraseña o inicio de sesión sin contraseña de SSH, o autenticación SSH a base de clave.

¿Qué pasa si quieres proporcionar un contraseña junto con nombre de usuario a SSH se solicitará a sí mismo? aquí es donde sshpass viene a rescatar.

sshpass es una herramienta de línea de comandos simple y liviana que nos permite proporcionar una contraseña (autenticación de contraseña no interactiva) al símbolo del sistema en sí, de modo que se puedan ejecutar scripts de shell automatizados para tomar copias de seguridad a través de Cron Scheduler.

SSH utiliza acceso directo TTY para asegurarse de que la contraseña realmente sea suministrada por un usuario de teclado interactivo. SSHPass ejecuta SSH en un TTY devoto, lo engaña para que crea que está recibiendo la contraseña de un usuario interactivo.

Importante: Usando sshpass considerado menos seguro, ya que revela la contraseña a todos los usuarios del sistema en la línea de comando con simple "PD" dominio. Recomiendo usar la autenticación sin contraseña SSH.

Instale SSHPass en sistemas Linux

En Redhat/centos Sistemas basados, primero debe habilitar el repositorio de Epel en su sistema para instalarlo utilizando el comando yum como se muestra.

# yum instalación sshpass # dnf install sshpass [ON Fedora 22+ versiones] 

En Debian/Ubuntu y sus derivadas, puede instalarlo utilizando el comando apt-get como se muestra.

$ sudo apt-get instalación sshpass 

Alternativamente, puede instalar desde la fuente para tener la última versión de sshpass, Primero descargue el código fuente y luego extraiga el contenido del archivo TAR e instálelo como así:

$ wget http: // SourceForge.net/proyectos/sshpass/files/ataster/download -o sshpass.alquitrán.gz $ tar -xvf sshpass.alquitrán.GZ $ CD SSHPASS-1.06 $ ./Configurar # sudo haz instalar 

Cómo usar SSHPass en Linux

sshpass se usa junto con ssh, puedes ver todo el sshpass Opciones de uso con descripciones completas emitiendo el comando a continuación:

$ sshpass -h 
Ayuda de SSHPASS
Uso: sshpass [-f | -d | -p | -e] [-hv] parámetros de comando -f nombre de archivo Tome contraseña para usar desde archivo -d número de uso de usos como descriptor de archivo para obtener contraseña -p contraseña proporciona contraseña como argumento ( Seguridad imprudente) -E La contraseña se pasa como env -var "sshpass" sin parámetros: la contraseña se tomará de stdin -h show ayuda (esta pantalla) -v información de la versión de impresión a lo sumo uno de -f, -d, -p o -e debe usarse 

Como he mencionado antes, sshpass es más confiable y útil para fines de secuencias de comandos, considere los comandos de ejemplo a continuación.

Iniciar sesión en el servidor remoto de Linux SSH (10.42.0.1) Con el nombre de usuario y la contraseña y verifique el uso del disco del sistema de archivos del sistema remoto como se muestra.

$ sshpass -p 'my_pass_here' ssh [correo electrónico protegido] 'df -h' 

Importante: Aquí, la contraseña se proporciona en la línea de comando que es prácticamente no segura y no se recomienda usar esta opción.

SSHPASS - Linux Remote Inicio de sesión a través de SSH

Sin embargo, para evitar mostrar contraseña en la pantalla, puede usar el -mi marcar e ingrese la contraseña como un valor del Sshpass Variable de entorno como se muestra:

$ exports sshpass ='my_pass_here' $ Echo $ sshpass $ sshpass -e ssh [correo electrónico protegido] 'df -h' 
SSHPASS - Ocultar contraseña en el aviso

Nota: En el ejemplo anterior, Sshpass La variable de entorno es solo para fines temporales y se eliminará durante el reinicio.

Para establecer permanentemente el Sshpass Variable de entorno, abra el /etc/perfil Archivo y escriba la declaración de exportación al comienzo del archivo:

Exportar sshpass ='my_pass_here' 

Guarde el archivo y salga, luego ejecute el comando a continuación para efectuar los cambios:

$ fuente /etc /perfil 

Por otro lado, también puedes usar el -F marcar y colocar la contraseña en un archivo. De esta manera, puede leer la contraseña del archivo de la siguiente manera:

$ sshpass -f contraseña_filename ssh [correo electrónico protegido] 'df -h' 
SSHPASS: suministrar el archivo de contraseña para iniciar sesión

También puede usar SSHPass para transferir archivos utilizando archivos SCP o Backup/Sync a través de RSYNC usando SSH como se muestra:

------- Transferir archivos usando SCP ------- $ scp -r/var/www/html/ejemplo.com - -rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/var/www/html ------- Archivos de copia de seguridad o sincronización con RSYNC ------- $ rsync --rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/data/backup//backup/ 

Para más uso, le sugiero que lea el sshpass página del hombre, tipo:

$ hombre sshpass 

En este artículo, explicamos sshpass Una herramienta simple que habilita la autenticación de contraseña no interactiva. Aunque estas herramientas pueden ser útiles, se recomienda altamente utilizar el mecanismo de autenticación de clave pública más segura de SSH.

Por favor, deje una pregunta o comentario a través de la sección de comentarios a continuación para cualquier discusión adicional.