Cómo crear scripts de shell sin contraseña en Linux

Linux es el sistema operativo más flexible del mercado; hay muy poco que no se pueda hacer con esta plataforma. Solo basta con mirar la programación de shell para darse cuenta de lo poderoso y personalizable que es Linux. Aunque la programación de shell no es necesariamente una característica utilizada por aquellos que son nuevos en el sistema operativo, cualquier administrador entiende completamente su necesidad.

Índice de Contenido
  1. Lo que necesitarás para crear scripts de shell sin contraseña en Linux
  2. Cómo instalar sshpass
  3. Cómo encriptar tu contraseña para sshpass

Lo que necesitarás para crear scripts de shell sin contraseña en Linux

Cómo crear scripts de shell sin contraseña en Linux - Desarrollo | Imagen 1 Newsmatic

Lo único que necesitas para seguir mi ejemplo son dos máquinas Linux y un usuario con privilegios de sudo. Estaré demostrando con Ubuntu Desktop 22.04 y Pop!_OS 22.04, así que si estás utilizando una distribución basada en RHEL, debes sustituir apt-get por dnf.

Cómo instalar sshpass

Primero, instala sshpass. Esto solo necesita ser instalado en la máquina desde la cual ejecutarás el script, así que en mi caso, Ubuntu Desktop 22.04. Crearemos un script simple que utilizará rsync para hacer una copia de seguridad del directorio ~/Documents de mi cuenta de usuario en Ubuntu.

Después de iniciar sesión, abre una ventana de terminal y crea el archivo de script con:

nano ~/backup

En ese archivo, pega lo siguiente:

Cómo instalar el kernel 6.0 en Ubuntu 22.04: Guía paso a paso

!/bin/bash
#Copiar datos a un servidor remoto
rsync -av Documents USER@IP:/home/USER/Backup

Donde USER es tu nombre de usuario e IP es la dirección IP de la máquina en la que se alojará la copia de seguridad.

Guarda y cierra el archivo.

Dale permisos de ejecución al script con:

chmod u+x ~/backup

Ahora, si ejecutas el script, se te pedirá la contraseña de tu usuario remoto. No queremos eso.

Cómo configurar y personalizar el archivo .gitconfig en Git

¿Qué tal si usamos sshpass aquí? Ese script se vería así:

!/bin/bash
#Copiar datos a un servidor remoto
sshpass -p "CONTRASEÑA" rsync -av Documents USER@IP:/home/USER/Backup

Donde CONTRASEÑA es la contraseña de tu usuario remoto, USER es tu nombre de usuario e IP es la dirección IP de la máquina en la que se alojará la copia de seguridad.

No queremos eso. ¿Qué hacemos? Encriptamos la contraseña.

Cómo encriptar tu contraseña para sshpass

Nuestro siguiente paso es encriptar la contraseña. Crea un archivo oculto con el siguiente comando:

nano ~/.secrets

Cómo desplegar Portainer con Podman: Guía paso a paso para administrar contenedores

En ese archivo, agrega la contraseña de tu usuario remoto. Guarda y cierra el archivo.

A continuación, necesitas encriptar el archivo con:

gpg -c ~/.secrets

Este comando creará un nuevo archivo, .secrets.gpg, que contendrá una versión encriptada de la contraseña.

Ahora, necesitamos modificar nuestro script de copia de seguridad, que se verá así:

!/bin/bash
#Copiar datos a un servidor remoto
gpg -dq /home/USER/.secrets.gpg | sshpass rsync -av Documents USER@IP:/home/USER/Backup

Aprende desarrollo web de pila completa desde cero con este curso por solo $19

Ahora, cuando ejecutes el comando ./backup, no se te pedirá la contraseña y no tendrás que preocuparte de que alguien pueda verla. Para asegurarte de eso, elimina el archivo original .secrets con el siguiente comando:

rm ~/.secrets

Y listo. Ahora puedes crear scripts de shell sin contraseña en tu sistema Linux. Disfruta de esa capa adicional de seguridad.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo crear scripts de shell sin contraseña en Linux , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.