sshpass: conéctate vía ssh a tu servidor con una sola línea de comando

sshpass: conéctate vía ssh a tu servidor con una sola línea de comando

A menudo, los que nos dedicamos al desarrollo web, necesitamos conectarnos por ssh a los servidores para realizar alguna tarea en particular. Y no solamente a uno, si no a varios, lo que puede convertirse en una tarea rutinaria y que muchos casos llega a cansar el hecho de tener que aprendernos claves, hosts, entre otras cosas.

Particularmente, en la empresa que trabajo, poseemos varios servidores a los cuales debo diariamente conectarme a cada uno para actualizar el código desde el repositorio git, revisar procesos en el servidor para unos cronjobs que deben ejecutarse, verificar logs y pare de contar.

Es por todo esto y más que hoy quiero mostrarles una herramienta que estoy seguro les será, al igual que a mi, de muchísima utilidad. Se llama “ sshpass “ y permite incluir en la misma linea de comando, la clave de acceso vía ssh a un servidor.

Comenzaré explicando cómo instalar la herramienta. Para ello debemos ejecutar el siguiente comando en nuestra terminal:

Instalación en macOS

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

Nota: Debes tener instalado Homebrew para poder instalarlo, si no aún no lo tienes, revisa mi post: **Homebrew: Instalar paquetes en macOS nunca fué tan sencillo**

Instalación en Linux

sudo apt-get install sshpass

Generalmente, para conectarnos vía ssh a un servidor ejecutamos un comando parecido a esto:

ssh usuario@host.com

En el que luego nos pedirá la clave de acceso para poder conectarnos finalmente al servidor.

Con sshpass, la cosa cambia y es que ahora podemos incluir la contraseña en la misma linea de comando para conectarnos, para esto, debemos ejecutar lo siguiente:

sshpass -p 'PASSWORD' ssh usuario@host.com

Y ya con esto, estaremos dentro del servidor sin tantas complicaciones.

Ahora bien, de seguro te preguntarás, y en que ayuda esto en sí si debo de igual forma memorizar miles de passwords para cada servidor?, aquí es donde viene lo interesante y es que podemos combinar esto con los alias de nuestro shell.

Lo que yo hago es crear alias de este comando en mi shell para que luego con tan solo ejecutar un comando que me ayude a recordar al servidor al que deseo conectarme, este alias sea traducido en la linea de comando de acceso al servidor, incluyendo ya el password de acceso:

En mi caso utilizo macOS y el shell ‘ ZSH ‘ por lo que podemos hacer lo siguiente:

Crear alias para el acceso ssh al servidor usando sshpass

Editamos el fichero: ~/.zshrc

sudo vim ~/.zshrc

Creamos los respectivos alias al final del archivo:

alias server1='sshpass "PASSWORD_1" ssh usuario1@servidor1.com'
alias server2='sshpass "PASSWORD_2" ssh usuario1@servidor2.com'
alias server3='sshpass "PASSWORD_3" ssh usuario1@servidor3.com'

Guardamos y luego ejecutamos:

source ~/.zshrc

Ahora basta con escribir en la terminal cualquiera de los 3 alias, server1, server2, o server3, nos estaremos conectando a cada uno respectivamente sin necesidad de colocar usuarios, passwords y hosts. Esto es solo un ejemplo, podemos crear cualquier cantidad de alias para cada uno de los servidores a los que diariamente debamos acceder y queramos ahorrar tiempo y evitar tener que recordar tantos datos para acceder.

Si te gustó este post, ayúdame a que pueda servirle a muchas más personas, compartiendo mis contenidos en tus redes sociales.

Espero que este post haya sido de gran ayuda para ti, y como siempre, cualquier inquietud o duda que tengas, puedes contactarme por cualquiera de las vías disponibles, o dejando tus comentarios al final de este post. También puedes sugerir que temas o post te gustaría leer a futuro.

Did you find this article valuable?

Support Francisco Ugalde by becoming a sponsor. Any amount is appreciated!