systemadmin.es > Seguridad > sshpass – Conectar sin contraseña por SSH sin usar claves privadas

sshpass – Conectar sin contraseña por SSH sin usar claves privadas

Si necesitamos automatizar una tarea, pero el servidor SSH no lo podemos definir que acepte nuestra clave pública: por ejemplo las consolas de gestión fuera de banda como las iLO o DRAC. Deberemos usar sshpass para pasarle el password:

Para conectar por ssh con sshpass, simplemente ejecutamos el mismo comando que usamos para conectar por ssh con sshpass delante, por ejemplo:

$ sshpass -p passw0rd ssh -l usuario host

Tenemos varias opciones para pasar la contraseña a sshpass:

  • Directamente la contraseña como parámetro con la opción -p. Dicha contraseña de sustituye por Zs por lo que no queda visible:
    |       \_ sshpass -p zzzzzzzzzzzzz ssh -l root 10.10.40.155
    |           \_ ssh -l root 10.10.40.155
    
  • Mediante un fichero, indicamos el path del fichero con la opción -f. De esta forma si el fichero tiene los permisos adecuados es suficientemente seguro.
  • Mediante una variable de entorno. Si indicamos la opción -e espera que la contraseña se encuentre en la variable SSHPASS que podemos pasar al lanzar el proceso:
    SSHPASS="passw0rd" sshpass -e ssh -l root 1.2.3.4
    

    Dicha variable no queda imposible de recuperar, se puede extraer igualmente mediante el procfs, pero de nuevo queda protegida por los permisos de usuario:

    # cat /proc/4301/environ 
    SSHPASS=passw0rd(...)
    
    
  • Al pasar el comando tal cual a sshpass, podemos también ejecutar comandos remotos o cualquier otra opción que tenga el ssh o el comando que necesitemos. En realidad, sshpass, se dedica únicamente a pasar la contraseña cuando la pide:
    # sshpass -p passw0rd ssh -l root 10.12.40.155 show
    dispatch_protocol_error: type 100 seq 8
    show
    status=0
    status_tag=COMMAND COMPLETED
    
    
    /
      Targets
        system1
        map1
      Properties
      Verbs
        cd version exit show
    
    
    </>hpiLO->
    

    One comment to “sshpass – Conectar sin contraseña por SSH sin usar claves privadas”

    1. Para estas cosas, siempre viene bien el comando expect.

    Deja un comentario:

    XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>