Convierte tu PC en un servidor y cliente SSH usando solo Windows

Convierte tu PC en un servidor y cliente SSH usando solo Windows

Rubén Velasco

Aunque por lo general estamos acostumbrados a usar el ordenador en modo gráfico, hay muchas herramientas que nos permiten controlarlo mediante un terminal, tanto en Linux como en Windows. Cuando se trata de controlar de forma remota un PC, estas herramientas salen a la luz por la facilidad y rapidez con las que podemos realizar todas estas tareas. Y una de estas herramientas, o, mejor dicho, un protocolo muy común que podemos usar en cualquier sistema operativo sea del tipo que sea, es SSH.

Tanto las versiones más recientes de Windows 10 como de Windows 11 incluyen un servidor y un cliente SSH integrados que se basan en OpenSSH. Esto significa que vamos a poder conectarse de forma remota a Windows 10/11 o Windows Server 2019 usando para ello cualquier cliente SSH, como las distribuciones de Linux.

Qué es SSH

Secure SHell, o SSH, es un protocolo utilizado para conectarnos de forma remota, y segura, a cualquier ordenador. Este protocolo es, a grandes rasgos, una versión mejorada de Telnet. Además de cifrar las conexiones de punto a punto para que nadie pueda verlas o interceptarlas (algo que no ofrecen ni Telnet y FTP), lo que vamos a poder hacer con este protocolo es:

  • Conectarnos de forma remota a cualquier PC y controlarlo mediante comandos.
  • Transferir archivos de forma segura, tanto sueltos como de forma simultánea.
  • Gestionar claves RSA para no tener que usar contraseñas.
  • Ejecutar aplicaciones en modo gráfico de forma remota.

Este es uno de los protocolos estándar y más utilizado a la hora de conectarnos de forma remota a servidores y otros equipos, especialmente Linux. Utiliza por defecto el puerto 22, un puerto que está siempre abierto en los firewalls y los routers, aunque podemos cambiarlo por el puerto que nosotros queramos usar.

Precisamente por todo esto que os comentamos, en ciertas ocasiones el uso de estas conexiones puede presentar ciertos riesgos podemos paliar. Esto es algo de lo que os hablaremos a continuación además de ver algunos programas alternativos que podemos usar para así aumentar la seguridad y privacidad al llevar a cabo estas tareas.

Activar servidor y cliente OpenSSH

Aunque el proceso es muy similar en los dos sistemas operativos de Microsoft, a continuación, vamos a explicar, paso a paso, cómo podemos activar este servidor tanto en Windows 10 como en Windows 11 para que podamos usar estas conexiones remotas seguras sin problemas en ambos sistemas.

En Windows 10

Desde la Fall Creators Update, Windows 10 trae consigo un cliente y un servidor basado en OpenSSH de manera que cualquier usuario que quiera usarlo pueda hacerlo sin problemas. Estas características son opcionales, ya que no todos los usuarios pueden necesitarlas, por lo tanto, tendremos que habilitarlas manualmente para poder usarlas.

Para instalar el cliente y/o el servidor de OpenSSH en Windows 10, lo que debemos hacer es abrir el menú de Configuración del sistema operativo, e ir al apartado «Aplicaciones > Aplicaciones y características > Características opcionales.

Instalar SSH en Windows 10 - 1

Aquí vamos a ver el apartado de características opcionales de Windows. Podremos ver todas las que tenemos instaladas y habilitadas en el sistema operativo, e instalar las que necesitemos en caso de no tenerlas ya. Para ello, tendremos que hacer clic sobre «Agregar una característica«.

Instalar SSH en Windows 10 - 2

Veremos todas las funciones y características opcionales que nos ofrece Windows. Las que nos interesan son el cliente y el servidor SSH. Podemos buscarlas a mano, pero lo más rápido es escribir «SSH» en el buscador para encontrar rápidamente tanto el servidor como el cliente.

Instalar SSH en Windows 10 - 3

Seleccionamos lo que queremos instalar, y aceptamos la ventana. Windows instalará y configurará automáticamente esta característica opcional para que no tengamos que hacer nosotros nada más. Cuando acabe el proceso, tanto el servidor como el cliente estarán listos para usarse en el sistema operativo.

Instalar SSH en Windows 10 - 4

En Windows 11

Desde la primera versión de Windows 11 podemos encontrar estos paquetes dentro de la lista de programas y características opcionales del sistema operativo. Pero, igual que en su predecesor, viene desactivada por defecto. Para activar esta función, lo primero que haremos será ir al apartado de «Características opcionales» de esta versión de Windows. Para ello, abrimos el menú de Configuración con el atajo Windows + I, y nos vamos al apartado Aplicaciones > Características opcionales. Aquí, lo que haremos será hacer clic sobre el botón azul de «Ver características» para añadir una nueva característica opcional.

SSH en Windows 11 - 1

Podremos ver un buscador como el siguiente, en el que tendremos que buscar «SSH» para poder instalar el servidor y el cliente, en caso de que no los tengamos ya instalados.

SSH en Windows 11 - 2

Marcamos la casilla, hacemos clic en «Siguiente» y comenzamos con la instalación de esta característica opcional. El proceso tardará unos segundos, y cuando lo tengamos listo ya podremos empezar a utilizarla.

Cómo desinstalarlos

Si llega un momento en el que ya no necesitamos ni este cliente ni este servidor, entonces vamos a poder deshabilitar estas características opcionales de Windows. No por liberar espacio, ya que entre el cliente y el servidor apenas llegan a los 30 MB, sino más bien por tener las funciones ordenadas y evitar que, por un despiste, alguien pueda conectarse a nuestro PC de forma remota.

Esto podemos hacerlo desde el mismo apartado de características opcionales anterior. En la lista de características instaladas podremos ver todo lo que tenemos habilitado en el sistema. Localizamos el cliente y/o el servidor, y los desinstalamos individualmente.

Instalar SSH en Windows 10 - 5

En caso de que seamos usuarios de Windows 11, el proceso de desinstalación es muy similar al de Windows 10. Debemos ir al mismo apartado que vimos en el punto anterior, el de características opcionales, y usar el buscador para buscar las características relacionadas con el SSH. Seleccionamos la que queramos y desde ahí podremos desinstalarla ya.

SSH en Windows 11 - 3

Cuando acabe la desinstalación, en cualquiera de los dos sistemas, estos servicios dejarán de estar disponibles.

Activar el servicio

Es posible que tengamos instalado todo lo necesario para poder usar el protocolo SSH en Windows pero que, a la hora de la verdad, este directamente no funcione. Esto puede deberse a que los servicios necesarios para poder hacer uso de este protocolo estén deshabilitados en Windows.

Para solucionarlo, lo primero que haremos será abrir la ventana de ejecución con el atajo Windows + R, y escribir en ella «services.msc». En la ventana que nos aparece tenemos que buscar dos servicios diferentes:

  • OpenSSH Authentication Agent
  • OpenSSH SSH Server

Hacemos doble clic sobre cada una de estas entradas, y seguramente veamos que está deshabilitado. Simplemente abrimos la lista de opciones que nos encontramos aquí y elegimos la opción de «Automático».

Activar servicio SSH Windows

Aplicamos los cambios, aceptamos y listo. Los servicios de SSH ya estarán en funcionamiento, y ahora podremos usar sin problemas este protocolo, tanto en modo cliente como en modo servidor.

Conectar a un servidor SSH desde Windows

OpenSSH se integra dentro de CMD y de PowerShell, por lo que no tendremos que bajar ni instalar ningún otro programa para poder conectarnos a cualquier servidor desde Windows. Lo único que debemos hacer es abrir la ventana de terminal que vayamos a usar, y ejecutar el comando «ssh» para comprobar que, efectivamente, el cliente está habilitado.

Instalar SSH en Windows 10 - 6

Para conectarnos a un servidor SSH, lo que debemos hacer es ejecutar uno de los dos siguientes comandos:

En caso de querer usar el último usuario disponible:

ssh IP_del_servidor:puerto

En caso de querer conectarnos con un usuario concreto:

ssh usuario@IP:puerto

Si no especificamos puerto se usará el 22 por defecto.

Si queremos, podemos especificar otros valores en forma de parámetros, como tipo de cifrados, certificados, etc.

Obtener la IP del equipo para que haga de servidor

De entre las muchas tareas que podemos llevar a cabo con este tipo de conexiones SSH de las que os hablamos, es convertir nuestro ordenador en un servidor para otros. Esto es algo que podemos llevar a cabo tras realizar las configuraciones comentadas antes, por medio de programas cliente como Putty, del que os hablaremos a continuación. Sin embargo antes de nada debemos tener en consideración que si nuestro ordenador se va a convertir en un servidor, para configurar correctamente los clientes correspondientes se necesitarán ciertos datos.

Por ejemplo a la hora de configurar estos programas cliente para acceder a nuestro equipo, de manera obligatoria van a necesitar la dirección IP del ordenador que haga las veces de servidor, en este caso el nuestro. Para ello podemos hacer uso del comando Ipconfig que podemos ejecutar de manera sencilla desde una ventana del símbolo del sistema. Igualmente podemos hacer uso de otras plataformas externas como esta web (http://ipinfo.io/ip), para obtener nuestra dirección IP de la manera más sencilla.

Controlar servidor OpenSSH

Para poder usar el servidor, lo primero que tenemos que hacer es iniciarlo. Esto se puede hacer de varias formas. Por ejemplo, hay aplicaciones con GUI que nos permiten hacerlo, pero nosotros recomendamos usar comandos de PowerShell para controlar el estado de este servidor:

  • Get-Service sshd – Comprobar el estado del servidor sshd.
  • Start-Service sshd – Iniciar el servidor sshd.
  • Stop-Service sshd – Detener el servidor sshd.

También podemos configurar desde PowerShell el servidor para que se ejecute automáticamente con el comando:

  • Set-Service -Name sshd -StartupType ‘Automatic’

Y para comprobar que el puerto 22, el del SSH, está abierto en nuestro firewall debemos hacerlo con el comando:

  • Get-NetFirewallRule -Name *ssh*

¿Problemas de conexión? Crea una regla en el firewall

Puede ocurrir que nos estemos intentando conectar de forma remota a nuestro PC a través de SSH y que haya algo que esté bloqueando los intentos de conexión. Lo más seguro es que sea el propio firewall de Windows, ya que, por defecto, bloquea el puerto 22 (usado por este protocolo) y el protocolo como tal para evitar correr riesgos de seguridad innecesarios.

Para evitarlo, y poder conectarnos sin problemas, es necesario crear una nueva regla. Para ello, no tenemos más que abrir una ventana de PowerShell, con permisos de Administrador, y ejecutar el siguiente comando:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain

Al hacerlo, ya haremos habilitado el tráfico entrando, a través de TCP, para usar el servicio sshd. Por lo tanto, ya solo nos queda volver a intentar la conexión para comprobar que, efectivamente, esta se ha podido realizar con éxito.

Riesgos al usar SSH en Windows

SSH es una herramienta muy útil para poder conectarnos a Internet de forma remota, y, además, hacerlo de forma segura. Sin embargo, debemos tener en cuenta que, si no lo hacemos correctamente, corremos el riesgo de poner nuestro sistema en peligro.

Uno de los riesgos más comunes que podemos encontrar el uso de SSH en servidores no autorizados. Muchos administradores de sistemas suelen habilitar las conexiones SSH en masa a todos los equipos de la red, sin tener cuidado. Y eso da lugar a que cualquiera pueda acceder a equipos a los que no debería poder acceder.

Otro problema muy común es usar servidores SSH sin actualizar, con vulnerabilidades. Por muy segura que sea la conexión, si el propio servidor tiene vulnerabilidades estaremos poniendo nuestro ordenador en peligro, abriendo la puerta a todo tipo de ataques informáticos.

Además, también es común encontrarnos con configuraciones poco seguras. Algunos administradores suelen modificar los parámetros para facilitar el uso y la configuración del servidor (por ejemplo, en OpenSSH) y, casi siempre, eso se traduce en problemas de seguridad. Siempre debemos asegurarnos de que estamos usando una configuración lo más segura posible.

Por último, es muy común el uso de contraseñas débiles, o certificados vulnerables, que pueden permitir la conexión a nuestro servidor mediante distintas técnicas, como la de la fuerza bruta. Una mala asignación de permisos o de directorios también suele traducirse en problemas de seguridad.

Alternativas

A diferencia de lo que puede ocurrir en Linux, para Windows no hay más servidores SSH que podamos usar para controlar Windows de forma remota. Existen algunos programas que nos permiten conectarnos a una shell remota, pero su funcionalidad es muy limitada.

Lo que sí podemos encontrar son varios clientes SSH para Windows que nos van a permitir conectarnos a servidores de forma más sencilla.

PuTTY, el cliente SSH por excelencia

Cuando hablamos de clientes SSH, PuTTY es uno de los más conocidos. Este cliente, gratuito y de código abierto, permite a los usuarios de Windows y Linux conectarse por Telnet y SSH a través de un emulador xterm. Un programa muy sencillo, y completo, que nos permitirá tener centralizados todos los servidores y conectarnos a ellos según lo necesitemos.

Es considerado como un emulador de terminal, lo cual nos permite iniciar sesión en otro PC, el cual se encuentre conectado en la misma red o a través de Internet. Es un software de código abierto y gratuito, el cual nos ofrece todo tipo de opciones que lo han convertido en toda una referencia cuando hablamos de clientes SSH. Sin embargo, no es un programa ni mucho menos perfecto y también cuenta con sus limitaciones. Por ejemplo, no permite observar más de un dispositivo dentro de una misma sesión pues no admite iniciar diferentes sesiones por pestaña.

Podemos bajar PuTTY desde este enlace.

Me gusta

Todo el uso y configuración de esta aplicación en concreto se lleva a cabo desde una única interfaz de usuario que encontramos nada más arrancar el programa. La solución software se adapta a todo tipo de usuarios y tipos de conexión SSH que en estos instantes podemos llevar a cabo desde nuestro ordenador.

Me gusta menos

Es importante tener cierta experiencia con este tipo de conexiones para así poder sacar el máximo rendimiento al programa.

KiTTY, una versión mejorada de PuTTY

Este es un cliente exclusivo para Windows creado a partir del código fuente original de PuTTY para obtener una herramienta similar a la par que mejorada del programa original. Cuenta por defecto con todas las funciones y características originales de PuTTY, además de con un gran número de características adicionales que nos permitirá controlar y gestionar mucho mejor todas nuestras conexiones.

Su interfaz es capaz de representar múltiples sesiones de forma simultánea e incluye dos implementaciones de SCP como son WinSCP y pscp.exe. También hay que mencionar que cuenta con un sistema de chat yun editor de texto. Además, nos ofrece la posibilidad de operar a través de scripts, así como ejecutar comandos en línea de comandos desde el ordenador remoto.

Podemos descargar KiTTY desde este enlace.

Bueno

Aquí nos encontramos con una versión más actual y mejorada del popular PuTTY que utilizamos desde hace años para estas mismas tareas de conectividad. Su interfaz de usuario nos permitirá de forma predeterminada controlar y manejar multitud de conexiones de forma simultánea desde la aplicación.

Malo

Pone a nuestra disposición determinadas funciones y modos de comportamiento que tan solo serán accesibles para los usuarios más experimentados.

Telnet, el protocolo más limitado

En caso de que el SSH no está disponible, por el motivo que sea, siempre podemos retroceder más en el tiempo y usar el que, para muchos, es su predecesor: Telnet. Este protocolo, al ser más antiguo, es mucho más compatible que el SSH, por lo que podemos usarlo como un sistema de comunicación básico con cualquier sistema o dispositivo. Y es que, aunque en la actualidad Telnet ha sido sustituido por SSH aún se sigue utilizando y tiene cierta utilidad a la hora de trabajar en entornos seguros por administradores de sistemas.

Sin embargo, tiene muchas limitaciones. Por ejemplo, lo primero que hay que tener en cuenta es que telnet no aplica ningún cifrado a las conexiones, por lo que cualquiera podría ver todo lo que enviamos al servidor, así como la contraseña de acceso. Incluso podría modificar al vuelo los comandos que enviamos. Además, las posibilidades de Telnet son infinitamente más limitadas que las que ofrece SSH.

Pros

Esta es una solución software que nos permite el uso del antiguo Telnet en el caso de que SSH no esté disponible para conectarnos. Apenas consume recursos del sistema gracias a la interfaz de usuario que nos propone.

Contras

Este es un programa que, en comparación con muchos de sus competidores, en estos momentos presenta una buena cantidad de limitaciones.

Secure Shell para Chrome

Si no queremos complicarnos ni depender de programas, podemos aprovecharnos de una extensión para Google Chrome diseñada para permitirnos conectarnos de forma remota a ordenadores a través de distintos protocolos. Secure Shell funciona como un emulador de terminal, además de soportar algunos protocolos comunes como SSH y SFTP. De esta manera, gracias a esta extensión, vamos a poder centralizar toda esta labor dentro del ecosistema de Chrome en lugar de depender de distintos programas individuales.

Bien

Se trata de una extensión de Chrome muy útil para conectarnos a otros equipos de forma remota desde el navegador. Funciona como un emulador de terminal que podemos usar de manera sencilla.

A mejorar

Dependemos del programa de Google para poder acceder a las funciones que nos propone esta alternativa.

HFS, crea un servidor en menos de 1 minuto

Una de las aplicaciones más sencillas y completamente seguras para crear un servidor web o para compartir archivos como si de una plataforma de almacenamiento en la nube se trata es HFS. HFS es una aplicación completamente gratuita con la que podemos crear un servidor web sin modificar ninguna función de las opciones de configuración de Windows, tan solo debemos añadir el contenido que queremos compartir y compartir la IP de nuestro equipo con otras personas. El único paso que puede requerir de más tiempo es abrir el puerto que queremos utilizar en nuestro router para compartir los archivos o la página web.

HFS

Esta aplicación es completamente gratuita, nos permite crear cuentas de usuarios al igual que aplicaciones FTP para limitar el acceso al contenido disponible, nos permite añadir una capa de cifrado TLS para que toda la información que compartamos esté completamente cifrada desde nuestro equipo hasta el que accede al contenido. Podemos descargar esta aplicación directamente desde su página web pulsando en el siguiente enlace.

Nos gusta

Aplicación muy sencilla de utilizar, que además es completamente gratuita. Incluye una gran cantidad de soporte par porte del desarrollador y nos permite crear una plataforma de almacenamiento en la nube o un servidor web en tan solo unos minutos sin que sean necesarios amplios conocimientos.

No nos gusta

Los antivirus detectan la aplicación como si de un troyano se tratara al permitir crear servidores web para compartir contenido, de forma similar a como lo hacen aplicaciones maliciosas. Sin embargo, la aplicación es totalmente segura.

¡Sé el primero en comentar!