Linux y Windows solían ser enemigos mortales, pero hoy en día tienden a llevarse mucho mejor. De hecho, ahora puedes usar SSH de forma nativa en Windows: tanto como cliente como servidor. ¿Qué haces cuando eres un administrador de Windows pero también necesitas gestionar máquinas Linux? ¡Te acostumbras al comando (Secure Shell) SSH en Linux!
Esta es la Parte IV de la serie de entradas de blog “Un chico de Windows en un mundo Linux”. Si quieres aprender más sobre conceptos populares de Linux, asegúrate de revisar Parte I, Parte II y Parte III.
En esta entrada, aprenderás todo sobre cómo habilitar SSH en Linux y cómo configurar tu cliente SSH de Windows para conectarte a servidores remotos de Linux.
Nota: Todos los ejemplos estarán utilizando OpenSUSE Linux.
Alejándote del entorno de escritorio
En el primer post de esta serie, el tutorial recomendaba usar el entorno de escritorio KDE. Mientras configurabas OpenSUSE, probablemente viste otra opción tentadora; la edición de servidor de OpenSUSE.

Si has instalado la edición de servidor de la mayoría de las distribuciones de Linux (incluyendo OpenSUSE), es posible que hayas notado la completa falta de un escritorio. La edición de servidor de la mayoría de las distribuciones populares (como OpenSUSE, así como Ubuntu Server y CentOS) es como el núcleo de Windows Server: no hay escritorio propiamente dicho.
Para entender por qué el escritorio suele ser rechazado en la cultura Linux, necesitas entender la CLI y SSH.
SSH: El Estándar de Oro de la Gestión Remota
SSH, al igual que muchos otros protocolos de gestión remota, es un sistema basado en cliente-servidor. Un cliente se conecta remotamente a través de la red a un servidor y te permite ejecutar comandos (o incluso transferir archivos). SSH es el estándar de facto cuando se trata de administrar Linux de forma remota.
Dado que SSH ha estado presente durante mucho tiempo y está profundamente integrado en el ecosistema Linux, las utilidades de administración de línea de comandos dominan el entorno del servidor Linux. La mayoría de las distribuciones de servidores Linux no tienen una interfaz gráfica.
Uso de Comandos SSH en Linux
Suficiente charla. Veamos qué puede hacer SSH primero habilitándolo en OpenSUSE Linux. Para hacerlo, utiliza el gestor de paquetes YaST. Para habilitar SSH con YaST en OpenSUSE:
- Haz clic en el menú de inicio, escribe terminal y elige Konsole suponiendo que has instalado el Administrador de Escritorio KDE al instalar OpenSUSE.
- En la terminal, abre YaST ejecutando
sudo yast
. - Una vez en YaST, desplázate hacia abajo hasta sistema, luego desplázate hacia la derecha hasta administrador de servicios y presiona Enter para proceder.
- Desplázate hacia abajo hasta sshd, y presiona
alt+s
para iniciar el servicio SSH. - Pulsa
alt+r
para cambiar el modo de inicio de manual a al arranque. Esto asegurará que el servicio del servidor SSH se inicie incluso después de reiniciar. - Pulsa
alt+o
para aceptar los cambios y aplicarlos.
Puedes ver estos pasos en acción a continuación.

Permitiendo SSH a través del cortafuegos
Casi todas las distribuciones de Linux vienen con algún tipo de cortafuegos para protegerlo como lo hace Windows. Puedes leer sobre el cortafuegos de OpenSUSE aquí. Para asegurarte de que puedas acceder al servicio SSH de forma remota desde Windows, debes permitirlo a través del cortafuegos. Para hacerlo:
- Aún en la terminal, inicia YaST nuevamente con
sudo yast
. - Desplázate hacia abajo hasta Seguridad y Usuarios y luego hacia la derecha hasta Cortafuegos y presiona Enter para proceder.
- Navega a Zonas –> Público y desplázate hacia la derecha hasta el panel de Servicios—Puertos.
- Desplázate hacia abajo para encontrar
ssh
en los servicios. - Selecciona
ssh
con la barra espaciadora y presionaalt+d
para agregar la selección. - Pulsa
alt+a
para aceptar los cambios.
Puedes ver todos estos pasos representados visualmente a continuación.

Al igual que Windows, Linux tiene diferentes niveles de confianza para aplicar reglas de firewall. Estos niveles se denominan zonas. Windows tiene las zonas pública, de trabajo y privada de forma predeterminada. Linux tiene muchas más, pero por defecto utiliza la zona pública.
Conectándose a Linux desde Windows
Afortunadamente, en la actualidad, Windows 10 cuenta con un cliente SSH incorporado. Para conectarse a un host de Linux, abre una ventana de comando (cmd) o una consola de PowerShell y especifica el nombre de usuario con el que deseas conectar y la dirección IP o el nombre de host.
Si todo va bien, el cliente SSH te pedirá que aceptes una huella digital. Una huella digital es un identificador para asegurarse de que nadie haya tomado el control de la dirección IP objetivo.
Si estás utilizando Windows 7, aún puedes conectarte por SSH a tu host de Linux. Solo necesitarás descargar el cliente SSH de Microsoft desde aquí. Este cliente SSH es el mismo que utiliza Windows 10.
Una vez que escribas yes
e ingreses tu contraseña, ¡estarás conectado a tu servidor! Ahora puedes usar la línea de comandos como si estuvieras abriendo una terminal en la propia computadora.
No expongas el SSH (puerto predeterminado 22) a Internet a través de tu enrutador. Los bots exploran constantemente Internet sin cesar en busca de puertos SSH abiertos. Tan pronto como un bot encuentra un puerto abierto, comenzará a enviar contraseñas tratando de forzar su entrada de forma bruta.
Habilitar el soporte para el mouse en SSH con Windows
Uno de los grandes inconvenientes de usar el cliente SSH nativo de Windows 10 (al menos en el momento de escribir esto) es la falta de soporte para el mouse. Esto significa que no puedes usar un mouse en midnight commander como aprendiste en una publicación de blog anterior.
Afortunadamente, a partir de la versión ocho del cliente OpenSSH para Windows, ¡puedes obtener soporte para el mouse! Instalemos este cliente.
- Descarga la última versión de OpenSSH-Win64 desde aquí y extrae el archivo zip resultante. Este tutorial asumirá que lo extraes en ~\Downloads\OpenSSH-Win64.
- Abre una consola de PowerShell y navega a ~\Downloads\OpenSSH-Win64 con
cd ~\Downloads\OpenSSH-Win64
. - Verifica la versión del cliente SSH ejecutando
.\\ssh -V
. Al momento de escribir esta guía, la versión debería ser 8.1.0.0-p1. - Accede a tu servidor Linux utilizando
.\ssh <usuario>@<ip>
. - Una vez iniciada la sesión, prueba el soporte para el mouse ejecutando
mc
para abrir midnight commander y asegurarte de que puedas usar un mouse.
Puedes ver todos estos pasos representados visualmente a continuación.
Sobreescribiendo el Cliente SSH Predeterminado
Si deseas utilizar la nueva versión de forma más permanente, puedes hacerlo; pero debes anular el cliente SSH predeterminado de Windows 10. Esto asegura que cada vez que ejecutes ssh en la línea de comandos, se utilice la versión más nueva (con soporte para mouse).
Suponiendo que hayas extraído el cliente a la carpeta ~\Downloads\OpenSSH-Win64
- Mueve la carpeta extraída OpenSSH-Win64 a una carpeta permanente de tu elección. Este tutorial utilizará C:\users\public\OpenSSH-Win64.
- Ve a Inicio y luego Ejecutar y escribe sysdm.cpl o abre Sistema desde el panel de control.
- En la pestaña Avanzado, haz clic en Variables de entorno.
- Bajo Variables del sistema, haz clic en Ruta.
- Haz clic en Nuevo para agregar una nueva ruta y proporciona la ruta de la carpeta del cliente SSH (C:\users\public\OpenSSH-Win64 en este caso).
- Haz clic en Mover hacia arriba hasta que esté por encima de la carpeta %SystemRoot%\system32. Esto garantizará que cuando escribas
ssh
en la línea de comandos, Windows busque aquí primero. - Abre una consola de PowerShell y ejecuta
ssh -V
. Deberías ver que la versión es 8.1.0.0-p.
Estos pasos están resumidos a continuación.

Dar prioridad a una carpeta sobre %SystemRoot%\system32 puede ser un riesgo de seguridad. Si alguien tiene acceso a tu computadora, puede decidir insertar un virus en la carpeta OpenSSH-Win64 y nombrarlo como una utilidad de Windows como cd.exe.
Deberías restringir la carpeta OpenSSH-Win64 para que solo los administradores tengan permisos de solo lectura.
- Haz clic derecho en la carpeta OpenSSH-Win64 y selecciona Propiedades.
- En la pestaña Seguridad, haz clic en el botón Avanzadas.
- Haz clic en Deshabilitar herencia para permitir permisos personalizados en la carpeta y evitar que las carpetas principales anulen los permisos en la carpeta OpenSSH-Win64.
- Selecciona Agregar, busca el grupo de Administradores y otórgales derechos completos.
- Haz clic en Agregar, busca el grupo Everyone y otórgales permisos de solo lectura.
- Marca la casilla Reemplazar todos los permisos de objetos secundarios para propagar estos ajustes a todos los archivos en la carpeta OpenSSH-Win64; luego haz clic en Aplicar.
- Ahora prueba estos permisos creando un nuevo archivo en la carpeta OpenSSH-Win64. Windows debería solicitar un permiso de administrador.
Puedes ver todos estos pasos representados visualmente a continuación.

Managing Disconnected Sessions with Tmux
¡Ah, qué dolor! Estás a medio camino de ejecutar un comando de larga duración a través de SSH y tu Internet se cae. ¡Ahora no tienes ni idea en qué estado está el servidor Linux! ¿Terminó ese comando? ¿Cómo lo recuperas?
Las sesiones desconectadas son un problema legítimo con SSH y afortunadamente tienen una solución sencilla. Necesitas un multiplexor de terminales (tmux).
Tmux significa tanto la abreviatura de multiplexor de terminales como el nombre del programa en sí
Tmux es un gestor de sesiones para SSH. “Mantiene” una sesión si te desconectas y la mantiene en funcionamiento en segundo plano. Puedes reconectar a esa sesión más tarde o incluso crear múltiples sesiones y saltar entre ellas.
Para gestionar sesiones desconectadas con tmux:
- En la terminal de Linux, descarga e instala la utilidad tmux ejecutando
sudo zypper install -y tmux
como se muestra a continuación:
También puedes usar YaST para descargar la utilidad tmux.

La mayoría de las distribuciones de Linux tienen un administrador de paquetes en línea de comandos diferente. OpenSUSE utiliza zypper. Arch utiliza pacman. Ubuntu utiliza apt. Red Hat utiliza dnf y yum. Afortunadamente, la sintaxis de estos administradores de paquetes es bastante similar en general.
2. En tu computadora con Windows, abre una consola de PowerShell y realiza una conexión SSH a tu servidor Linux. Este tutorial utilizará un nombre de usuario homelab y la IP del servidor Linux será 192.168.134.169.
3. Abre tmux ejecutando tmux
una vez conectado. Deberías ver una barra verde en la parte inferior
4. Ejecuta un comando que genere algún texto. No importa cuál sea. Este tutorial utiliza neofetch. También puedes ejecutar ls
.
5. Desconecta la sesión cerrando PowerShell. Esta acción simula una desconexión.
6. Conéctate nuevamente a tu servidor Linux usando SSH.
7. Ahora vuelve a adjuntarte a la sesión anterior ejecutando tmux a
. Deberías seguir viendo la salida del comando ls
anterior. ¡Hurra, no hay pérdida de datos por la desconexión!
Puedes ver todos estos pasos representados visualmente a continuación.

Si intentas ejecutar la utilidad Midnight Commander dentro de
tmux
, es posible que notes que no tienes soporte para el ratón. Puedes solucionarlo ejecutandomc -x
en su lugar.
Habilitar tmux en el inicio
Por defecto, tmux no estará disponible en todas las sesiones SSH. Puedes cambiar eso forzando a tmux a adjuntarse a tu sesión SSH cada vez que inicias sesión.
Suponiendo que estás conectado por SSH a tu servidor Linux:
- Abre la utilidad midnight commander usando mc.
2. Resalta el archivo .bashrc y presiona editar.
El archivo
.bashrc
es un script de shell que se ejecuta cada vez que inicias sesión a través de la línea de comandos
3. Agrega el siguiente código de script de shell al final del archivo de texto.
4. Haz clic en salir y guarda cuando se te solicite.
5. Prueba la autoconexión de tmux desconectándote de tu sesión SSH y volviendo a unirte. Deberías obtener una barra verde en la parte inferior automáticamente, indicando que estás conectado a una sesión de tmux
!
Eso es solo rascar la superficie de lo que tmux
puede hacer, es un programa multitarea muy potente. Si le preguntas a cualquier administrador de Linux cuál es su comando más utilizado, probablemente sea tmux
.
Conclusión
Esto concluye la última entrada en la serie de publicaciones del blog Un Chico de Windows en un Mundo Linux. ¡Mantente atento al blog de ATA para la próxima instalación que se avecina!