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.
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«.
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.
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.
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.
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.
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.
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.
Cuando acabe la desinstalación, en cualquiera de los dos sistemas, estos servicios dejarán de estar disponibles. Con todo y con ello debemos tener en consideración que esta es una herramienta adicional que podemos instalar y utilizar en el sistema Windows que apenas ocupa espacio en nuestras unidades de disco. Básicamente lo que quiere decir esto es que si mantenemos instalada la funcionalidad que hemos descrito para la conectividad, no nos hará ningún daño si la mantenemos en el equipo, ya que no consume recursos y el espacio que ocupa es mínimo.
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».
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. Aunque los usuarios de a pie no suelo utilizar este protocolo de conexión, los administradores de sistemas y aquellos que tengan conocimientos profundos de Windows, serán asiduos a este tipo de conexiones.
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.
Una vez nos aseguramos de que la herramienta está disponible en el sistema operativo de Microsoft, ya podemos empezar a trabajar con la misma sin problema alguno, algo muy útil para los usuarios avanzados del sistema.
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, 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?
Si no conseguimos realizar la conexión, lo más probable es que el problema esté relacionado con los puertos que se utilizan para acceder a nuestro equipo, por lo que debemos comprobar vía hardware y software si se encuentran abiertos o cerrados.
Crear 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. Algo similar tendremos que llevar a cabo en el caso de que tengamos instalado algún software de seguridad en forma de firewall de terceros en el sistema de Microsoft.
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.
Comprobar los puertos del router
Si seguimos teniendo problemas con el puerto de acceso, además de abrir el puerto en el firewall de Windows, también debemos comprobar que ese puerto se encuentra abierto en el router. Si no es así, por mucho que lo abramos en Windows, si el router tiene el puerto bloqueado, nos vamos a encontrar con el mismo problema.
Para comprobar si nuestro router tiene ese u otros puertos cerrados o abiertos, podemos utilizar la web Test de velocidad, concretamente el apartado que nos permite comprobar si un determinado puerto de nuestro router se encuentra abierto o cerrado. La web detecta automáticamente nuestra IP, por lo que únicamente vamos a tener que especificar el número de puerto, que, en este caso, es el 22 y pulsar en Comenzar.
El puerto está cerrado en el router, tendremos que, en primer lugar, averiguar cuál es nuestro modelo de router para, a continuación, buscar un tutorial en internet que nos muestre como abrir puertos en ese modelo. Si tenemos algunos conocimientos de informática, podemos optar por buscar el apartado Puertos o Port fowarding en el router si este se encuentra en inglés.
Eliminar o desactivar el antivirus instalado
En multitud de ocasiones ya os hemos dicho que la casi obligatoriedad de disponer de una solución de seguridad instalada en nuestro ordenador de Windows, cada vez está más presente. La principal razón de todo ello es que los atacantes con el paso del tiempo han mejorado sus técnicas y podemos convertirnos en víctimas en cualquier instante.
Además los actuales códigos maliciosos pueden afectar a cualquier componente del ordenador e incluso bloquearlo por completo. De ahí que disponer de un buen antivirus instalado en nuestro equipo basado en Windows sea algo clave en los tiempos que corren. Siempre podemos dejar funcionando el software de seguridad que nos propone Microsoft de forma predeterminada en las instalaciones limpias del sistema. En concreto nos referimos a Windows Defender, una alternativa de seguridad que no ha parado de mejorar con el tiempo.
Pero también nos podemos decantar por instalar alguna otra solución de terceros que nos ofrezca una mayor confianza. Cabe mencionar que instalar cualquier otro antivirus, el mencionado de Microsoft se desactiva de forma automática. Sin embargo a pesar de su importancia, estos programas que cuidan de nuestros datos y aplicaciones, también suelen ser propensos a dar problemas relacionados con la compatibilidad.
Esto quiere decir que cuando tenemos algún antivirus funcionando en segundo plano en modo standby, puede ofrecer algunos problemas con otros programas o incluso con nuestra conectividad. Esto es algo que puede afectar de forma directa si hemos tomado la determinación de utilizar nuestro PC con Windows en las tareas comentadas en estas líneas.
Por tanto lo mejor que podemos hacer si tenemos problemas con la conexión SSH, es desactivar la solución de seguridad que tenemos instalada, al menos temporalmente. También podemos desactivar el antivirus por completo, pero deberíamos ponerlo de nuevo en funcionamiento cuando ya no necesitemos usar este tipo de conexiones
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 y me gusta menos
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. 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 y malo
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. 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 y contras
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. 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 y a mejorar
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.
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.
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 y no 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. 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.