Envía el password de SSH en la misma línea con el paquete sshpass

Para aquellos que usamos en nuestro día a día el SSH, o sea, los que necesitamos acceder a ordenadores o servidores remotos de forma constante en nuestro día a día llegamos al punto de hartarnos de teclear contraseñas, sería:

  1. Teclar en una terminal: ssh usuario@servidor
  2. Esperar unos segundos
  3. Nos pedirá el password el servidor a donde deseamos conectarnos
  4. Una vez ponemos el password y presionamos [Enter] entonces es que accederemos al servidor remoto

Y ahora mi pregunta, ¿no es más simple teclear solamente?:

sshpass -p «PASSWORD» ssh root@servidor

Por ejemplo, supongamos que el usuario es root, el servidor es: dev.desdelinux.net y el password es xunil … entonces la línea sería:

sshpass -p xunil ssh root@dev.desdelinux.net

Para lograr esto simplemente debemos instalar el paquete sshpass, en Debian/Ubuntu o derivados sería con sudo apt-get install sshpass mientras que en ArchLinux o derivados bastaría con sudo pacman -S sshpass

Si deseamos especificar el puerto (pues el SSH no se encuentra en el puerto 22) añadimos -p «PUERTO» … o sea, suponiendo que sea el puerto 9122:

sshpass -p xunil ssh root@dev.desdelinux.net -p 9122

Para simplificar todo esto aún más podemos crear alias, por ejemplo que al ejecutar server1 se ejecute toda la línea para conectarnos por SSH al server1 (sshpass -p password usuario@server1) o algo similar, así nos ahorramos también poner una línea demasiado extensa 

En fin, espero que esto les haya sido de utilidad.

Por cierto, otra forma de evitar tener que escribir el password cuando accedemos por SSH es mediante el uso de llaves públicas y privadas.

Saludos