![¿Cómo guardar el estado de WhatsApp en Android?](/f/03ead11e869811afe926af277864681c.png?width=100&height=100)
En la mayoría de los casos, los administradores del sistema Linux inician sesión en servidores Linux remotos utilizando SSH, ya sea proporcionando una contraseña o inicio de sesión SSH sin contraseñao autenticación SSH basada en claves.
¿Qué pasa si desea proporcionar un clave junto con nombre de usuario al mensaje SSH a sí mismo? aquí es donde sshpass viene al rescate.
sshpass es una herramienta de línea de comandos simple y liviana que nos permite proporcionar una contraseña (contraseña no interactiva autenticación) en el símbolo del sistema, de modo que se puedan ejecutar scripts de shell automatizados para realizar copias de seguridad vía programador cron.
ssh utiliza acceso directo a TTY para asegurarse de que la contraseña la proporcione realmente un usuario de teclado interactivo. Sshpass ejecuta ssh en un tty dedicado, engañarlo haciéndole creer que está recibiendo la contraseña de un usuario interactivo.
Importante: Utilizando sshpass considerada la menos segura, ya que revela la contraseña a todos los usuarios del sistema en la línea de comando con un simple
"PD" mando. Recomiendo encarecidamente usar Autenticación SSH sin contraseña.En RedHat / CentOS sistemas basados, primero necesita habilitar el repositorio de Epel en su sistema para instalarlo usando comando yum como se muestra.
# yum instala sshpass. # dnf install sshpass [Activado Fedora 22+ versiones]
En Debian / Ubuntu y sus derivados, puede instalarlo usando comando apt-get como se muestra.
$ sudo apt-get install 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 así:
$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz. $ tar -xvf sshpass.tar.gz. $ cd sshpass-1.06. $ ./configure. # sudo make install
sshpass se usa junto con ssh, puedes ver todos los sshpass opciones de uso con descripciones completas emitiendo el siguiente comando:
$ sshpass -h.
Ayuda de sshpass
Uso: sshpass [-f | -d | -p | -e] [-hV] parámetros de comando -f nombre de archivo Tomar contraseña para usar del archivo -d número Usar número como descriptor de archivo para obtener contraseña -p contraseña Proporcionar 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 Mostrar ayuda (esta pantalla) -V Versión impresa información. Como máximo, se debe usar uno de -f, -d, -p o -e.
Como he mencionado antes, sshpass es más confiable y útil para propósitos de scripting, considere los comandos de ejemplo a continuación.
Inicie sesión en el servidor ssh remoto de Linux (10.42.0.1) con el nombre de usuario y la contraseña y comprobar 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 insegura y no se recomienda utilizar esta opción.
Sin embargo, para evitar que se muestre la contraseña en la pantalla, puede utilizar el -mi
bandera e ingrese la contraseña como un valor de la SSHPASS variable de entorno de la siguiente manera:
$ exportación SSHPASS ='my_pass_here'
$ echo $ SSHPASS. $ sshpass -e ssh [correo electrónico protegido] 'df -h'
Nota: En el ejemplo anterior, SSHPASS La variable de entorno es solo para fines temporales y se eliminará durante el reinicio.
Para configurar permanentemente el SSHPASS variable de entorno, abra el /etc/profile archivo y escriba la declaración de exportación al principio del archivo:
exportar SSHPASS ='my_pass_here'
Guarde el archivo y salga, luego ejecute el siguiente comando para efectuar los cambios:
$ fuente / etc / profile
Por otro lado, también puede utilizar el -F
flag y poner la contraseña en un archivo. De esta manera, puede leer la contraseña del archivo de la siguiente manera:
$ sshpass -f nombre_archivo_contraseña ssh [correo electrónico protegido] 'df -h'
También puede usar sshpass para transferir archivos usando scp o copia de seguridad / sincronización de archivos a través de rsync usando SSH como se muestra:
Transferir archivos usando SCP $ scp -r /var/www/html/example.com --rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/var/www/html Copia de seguridad o sincronización de archivos mediante Rsync $ rsync --rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/data/backup/ / backup /
Para mayor uso, le sugiero que lea el sshpass página de manual, escriba:
$ man sshpass.
En este artículo, explicamos sshpass una herramienta sencilla que permite la autenticación de contraseña no interactiva. Aunque estas herramientas pueden resultar útiles, se recomienda encarecidamente utilizar el mecanismo de autenticación de clave pública más seguro 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.