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.
![Cómo crear scripts de shell sin contraseña en Linux - Video](https://i.ytimg.com/vi/RQ6YK-D5Eq0/hqdefault.jpg)
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 Cómo crear scripts de shell sin contraseña en Linux - Desarrollo | Imagen 1 Newsmatic](/wp-content/uploads/scripts-shell-sin-contrasena-linux-imagen-1.webp)
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:
![](https://newsmatic.com.ar/wp-content/uploads/instalar-kernel-linux-ubuntu-imagen-1-150x150.webp)
!/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.
![](https://newsmatic.com.ar/wp-content/uploads/archivo-gitconfig-flujo-trabajo-eficiente-imagen-1-150x150.webp)
¿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
![](https://newsmatic.com.ar/wp-content/uploads/implementar-portainer-con-podman-imagen-1-150x150.webp)
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
![](https://newsmatic.com.ar/wp-content/uploads/formacion-desarrollo-web-imagen-1-150x150.webp)
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