Windows 10 ssh client (nativo)

¿Sabías que Windows 10 cuenta con un cliente SSH nativo? Normalmente, cuando se quiere acceder a sistemas Unix o GNU/Linux desde Windows se suele usar el clásico PuTTY u otro cliente ssh alternativo de terceros.

Pues bien, Microsoft cuenta con un cliente OpenSSH integrado desde hace ya algunas actualizaciones de Windows 10 (concretamente desde abril del año pasado), eso sí, es un cliente que creo que no está habilitado por defecto por lo que habrá que acceder hay que habilitar la funcionalidad a mano.  En mi caso, sí que estaba habilitado pero no recuerdo si lo había hecho ya antes.

Una puntualización: evidentemente, este cliente no va a tener todas las opciones y funcionalidades de clientes de terceros como PuTTY, pero puede ser una opción interesante en entornos en los que es imperativo utilizar herramientas de Microsoft.

Cómo activar el cliente ssh nativo de Windows 10

Al ser una funcionalidad opcional, hay que acceder al apartado «Settings«, después «Apps» y hacer clic en «Manage optional features» en el bloque de «Apps & features«. Una vez dentro, hay que hacer clic en el icono «+ Add a feature» y ahí ya aparecerá OpenSSH client para instalar.

Para los que lo tengáis en español, supongo que será algo como:

Configuración > Aplicaciones > Administrar funciones opcionales > Agregar característica > OpenSSH Client.

OpenSSH client Windows 10

Si os fijáis, veréis que justo debajo también aparece la opción de instalar un servidor OpenSSH (¡no sólo el cliente!). Eso ya es otro tema, hablaremos de ello en otra entrada…

Cómo utilizar OpenSSH client en Windows

Muy sencillo, igual que lo haríamos en Unix o GNU/Linux. Ejecutad el comando sin argumentos para ver todas las opciones disponibles:

PS C:\Users> ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
           [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
           [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
           destination [command]
PS C:\Users>

Lo habitual y más sencillo para conectar a un host es el formato usuario@host:

PS C:\Users> ssh foo@192.168.1.100

También podemos forzar un puerto distinto al TCP 22 (defecto):

PS C:\Users> ssh foo@192.168.1.100 -p 2222

O especificar un archivo de identidad:

PS C:\Users> ssh -i foo.pem foo@192.168.1.100 -p 2222

Así que ya sabéis, si utilizáis Windows 10 no tenéis por qué instalar un cliente SSH de terceros para poder conectar por Secure Shell a entornos Unix, GNU/Linux, CMD o powershell será suficiente.