• Conectar a SSH en una sola línea y sin meter manualmente la contraseña

    Tanto si queremos crear un acceso directo a una conexión SSH como si queremos ejecutar dicha conexión en una única línea y sin interacción, los dos métodos de abajo nos serán útiles:

    Método 1: (sshpass)

    Antes que nada vamos a instalar el comando sshpass con:

    apt-get -y install sshpass

    Una vez instalado ya podremos ejecutar una sola línea como esta:

    sshpass -p "Contraseña" ssh pepe@servidor.com

    Donde «Contraseña» es la clave necesaria para ejecutar exitosamente la conexión

    Método 2 (expect)

    Si bien expect no está pensado originalmente para conexiones SSH puede servirnos perfectamente para este caso. Antes que nada vamos a instalar el comando expect con:

    apt-get -y install expect

    Una vez instalado ya podremos ejecutar una sola línea como esta:

    expect -c 'spawn ssh pepe@servidor.com; expect "assword:"; send "Contraseña\r"; interact'

    … o como esta:

    expect -c 'spawn ssh pepe@192.168.0.10; expect "assword:"; send "Contraseña\r"; interact'

    Donde Contraseña es el password del servidor ssh remoto.

    ACLARACIÓN: La cadena «assword» está escrita correctamente. Es para no generar conflictos con la primera letra capitalizada. Es decir, si ponemos «password» pero el programa al que le tenemos que meter la clave nos muestra «Password», el expect no funcionará. Lo mismo si ponemos «Password» y el programa nos muestra «password».


    Deja una respuesta