systemadmin.es > Aplicaciones > Patch para deshabilitar la comprobación de fingerprint en plink (putty)

Patch para deshabilitar la comprobación de fingerprint en plink (putty)

En Windows tenemos el binario plink de putty que permite realizar conexiones desde linea de comandos, el inconveniente es que no es tan completo como el cliente ssh de openssh. A continuación vamos a ver un patch para plink para deshabilitar la comprobación del fingerprint del servidor.

Mediante el cliente ssh de openssh (el más común en las distribuciones Linux) podemos usar la opción StrictHostKeyChecking para deshabilitar la comprobación del fingerprint:

$ ssh -o 'StrictHostKeyChecking no' (...)

En el caso de putty (y plink) guardan los fingerprints en el registro de Windows y no tenemos ninguna opción para deshabilitarlos. Mediante el siguiente patch, he añadido la opción -stricthostcheck con las opciones (yes/no/save). He colgado también el binario del plink con el patch (32 bits) para mayor conveniencia, ya que compilar con el Visual Studio es tan lioso como recordaba:

Build de plink con MSVS 2012

Build de plink con MSVS 2012

Una vez ejecutado el nuevo binario veremos las opciones disponibles:

C:\>plink
PuTTY Link: command-line connection utility
Unidentified build, Sep  7 2012 06:44:04
Usage: plink [options] [user@]host [command]
       ("host" can also be a PuTTY saved session name)
Options:
  -V        print version information and exit
(...)
  -batch    disable all interactive prompts
  -stricthostcheck option
            no: Disable host key check
            save: Automatically add new host keys
The following options only apply to SSH connections:
  -pw passw login with specified password
(...)

Si lo probamos de ejecutar normalmente veremos que por defecto sigue haciendo la comprobación:

C:\>plink jprats@remote.systemadmin.es
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 ea:sp::0r:ts:00:de:ad:be:ef:00:11:00:11:00:11
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) 

En el caso que indiquemos -stricthostcheck no no hará la comprobación:

C:\>plink -stricthostcheck no jprats@remote.systemadmin.es
Using username "jprats".

jprats@remote.systemadmin.es's password:

Pero no guardará el fingerprint (a diferencia del cliente openssh):

C:\>plink jprats@remote.systemadmin.es
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 ea:sp::0r:ts:00:de:ad:be:ef:00:11:00:11:00:11
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) 

Si queremos que no haga la comprobación y además guarde el fingerprint, deberemos indicar la opción -stricthostcheck save:

C:\>plink -stricthostcheck save jprats@remote.systemadmin.es
Using username "jprats".

jprats@remote.systemadmin.es's password:

Con lo que a continuación quitando la opción ya podremos acceder sin que nos pida de nuevo verificar el fingerprint ya que ya lo tiene guardado como válido:

C:\>plink jprats@remote.systemadmin.es
Using username "jprats".

jprats@remote.systemadmin.es's password:

Dicha opción resulta muy conveniente para toda clase de scripts, aunque evidentemente reduce la seguridad, por lo que debe ser usado con precaución:

Por esto esta característica nunca será incluida en putty. Lo que no me parece bien es el porque obligar a ello y, especialmente, cuando el cliente de openssh dispone de dicha opción. Evidentemente, esto es lo que tiene ser el desarrollador de un proyecto: puedes hacer lo que quieras

One comment to “Patch para deshabilitar la comprobación de fingerprint en plink (putty)”

  1. Este patch de plink, me funciona perfectamente en un W7 ultimate de 32bits.
    Pero en un XP SP3 32bits, me dice que no es una aplicación win32 válida.

    Salu2

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>