2K
Las últimas versiones de Windows incluyen un servidor y un cliente SSH integrados que se basan en OpenSSH. Esto significa que ahora puede conectarse de forma remota a una computadora con Windows 10/11 o Windows Server 2022/2019 usando cualquier cliente SSH, similar a las distribuciones de Linux. En este artículo, le mostraremos cómo configurar OpenSSH en Windows 10 y Windows 11, y cómo conectarse mediante Putty o cualquier otro cliente SSH.
OpenSSH es una versión multiplataforma de código abierto de Secure Shell (SSH) que los usuarios de Linux utilizan desde hace mucho tiempo. Este proyecto actualmente está portado a Windows y se puede usar como un servidor SSH en casi cualquier versión de Windows.
Cómo instalar el servidor SSH en Windows 10 u 11
A partir de Windows 10 compilación 1809, OpenSSH Server se incluye en todas las imágenes del sistema operativo Windows.
Puede habilitar el servidor OpenSSH en Windows 10 u 11 a través del panel de Configuración gráfico:
- Ve a Ajustes > aplicaciones > Aplicaciones y funciones > Funciones opcionales (o ejecute el comando ms-settings:appsfeatures);
- Hacer clic Agregar una funciónseleccionar Servidor OpenSSH (Servidor de shell seguro (SSH) basado en OpenSSH, para la administración segura de claves y el acceso desde máquinas remotas) y haga clic en Instalar.
- Espere a que se complete la instalación del servidor OpenSSH.
También puede instalar el servidor sshd usando PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
O usando DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Si desea asegurarse de que el servidor OpenSSH esté instalado, ejecute el siguiente comando PS:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Server*'
Nombre: OpenSSH.Servidor~~~~0.0.1.0
Estado : Instalado
OpenSSH Server en Windows entregado como un Característica a pedido (FoD). Esto significa que Windows no almacena localmente los archivos binarios para la instalación de OpenSSH. Durante la instalación de características opcionales, Windows descarga archivos de características de los servidores de Microsoft Update. Si su computadora está ubicada en un entorno fuera de línea (no conectado a Internet), puede instalar OpenSSH Server desde una imagen FoD ISO fuera de línea:
- Puede descargar la imagen ISO de FoD para su versión de Windows desde el Centro de servicios de licencias por volumen (VLSC) o desde My Visual Studio.
- Monte los medios FoD ISO en una unidad de DVD virtual en Windows;
- Instale OpenSSH.Server con el comando:
Add-WindowsCapability -online -name OpenSSH.Server~~~~0.0.1.0 -source -Source "E:" -LimitAccess
Use el siguiente comando de PowerShell para desinstalar el servidor SSH:
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Nota. En versiones anteriores de Windows (anteriores a Windows 10 1809), puede instalar manualmente el puerto Win32-OpenSSH para Windows desde el repositorio GitHub.
Los archivos binarios de OpenSSH se encuentran en la carpeta C:WindowsSystem32OpenSSH.
Esta ruta también se agrega a la Camino variable de entorno en Windows:
$Env:Path
Cómo habilitar y configurar el servidor SSH en Windows
Compruebe el estado de los servicios ssh-agent y sshd mediante el comando Get-Service de PowerShell:
Get-Service -Name *ssh*
De forma predeterminada, ambos servicios se detienen y no se agregan al inicio automático. Ejecute los siguientes comandos para iniciar los servicios de OpenSSH y configure el inicio automático para ellos:
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Start-Service ssh-agent Set-Service -Name ssh-agent -StartupType 'Automatic'
Compruebe si el servicio sshd se está ejecutando y escuchando en el puerto TCP/22:
netstat -nao | find /i '":22"'
Se agrega una regla que permite conexiones remotas al servidor SSH al firewall de Windows Defender cuando se instala OpenSSH Server (con la descripción Regla de entrada para OpenSSH SSH Server (sshd)). Use el comando PowerShell para verificar que la regla para el servidor OpenSSH esté habilitada:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
Si la regla está deshabilitada, debe habilitarla:
Get-NetFirewallRule -Name *OpenSSH-Server*|Enable-NetFirewallRule
Puede configurar una serie de opciones para el servidor OpenSSH en Windows utilizando %programdata%sshsshd_config archivo de configuración.
Nota. Lea nuestra guía sobre cómo usar Amazon SES como SMTP Relay.
Por ejemplo, puede deshabilitar la autenticación de contraseña SSH y dejar solo la autenticación basada en claves al habilitar las siguientes directivas en el archivo sshd_config:
PubkeyAuthentication yes PasswordAuthentication no
Aquí también puede especificar un nuevo puerto TCP (en lugar del puerto TCP 22 predeterminado) en el que el SSHD aceptará conexiones. Por ejemplo:
Port 2222
Usando las directivas AllowGroups, AllowUsers, DenyGroups, DenyUsers, puede especificar usuarios y grupos a los que se les permite o deniega conectarse a Windows a través de SSH:
- DenyUsers theitbrosjbrown@192.168.1.15 — deniega conexiones al nombre de usuario jbrown desde el host 192.168.1.15;
- DenyUsers theitbros*: evita que todos los usuarios del dominio itbros se conecten al host a través de SSH;
- AllowGroups theitbrosssh_allow: solo permite que los usuarios de theitbrosssh_allow se conecten al host.
Las reglas de permiso y denegación de sshd se procesan en el siguiente orden: DenyUsers, AllowUsers, DenyGroups y AllowGroups.
Por ejemplo, para permitir una conexión SSH bajo el miusuariolocal1 cuenta del host 192.168.31.100, agregue la siguiente directiva
AllowUsers mylocaluser1@192.168.31.100
Después de realizar cambios en el archivo sshd_config, debe reiniciar el servicio sshd:
Get-Service sshd| Restart-Service –force
Conéctese a Windows a través de SSH
Ahora puede conectarse a una computadora con Windows usando cualquier cliente SSH. Para conectarse desde Linux, use el comando:
ssh -p 22 admin@192.168.1.90
- administración es un usuario local de Windows con el que desea conectarse. Esta cuenta debe ser miembro del grupo de administradores integrado.
- 192.168.1.90 es una dirección IP o FQDN del host remoto de Windows.
Después de eso, se abrirá una ventana del símbolo del sistema de Windows en la sesión SSH.
Puedes usar el popular Masilla cliente para conectarse a una computadora con Windows a través de SSH:
- Descargue y ejecute putty.exe;
- Ingrese el nombre de host o la dirección IP del host remoto de Windows que desea conectar a través de SSH;
- Seleccione el Tipo de conexión: SSH y asegúrese de que se especifique el puerto 22;
- Haga clic en Abrir;
- La primera vez que se conecte a un host de Windows a través de SSH, aparecerá una alerta de seguridad que le pedirá que confirme que desea agregar la huella digital de la clave ssh-ed25519 de la máquina remota a su caché local. Si confía en este host, haga clic en el Aceptar botón. Esto agregará ese servidor a la lista de hosts SSH conocidos;
Nota. Huella digital del servidor OpenSSH almacenada en un archivo C:ProgramDatasshssh_host_ecdsa_key.pub. Puede ver la huella digital de la clave ECDSA actual en un host de Windows con el comando:
ssh-keygen -lf C:ProgramDatasshssh_host_ed25519_key.pub
- Aparecerá una ventana de masilla. Aquí debe especificar el nombre de usuario y la contraseña de Windows que desea usar para conectarse;
- Una vez que haya iniciado sesión, se abrirá el símbolo del sistema del host remoto de Windows;
- Ahora puede ejecutar comandos de forma interactiva en el host remoto.
También puede usar el cliente SSH de Windows incorporado para conectarse a otro host de Windows. Instala el ssh.exe cliente en Windows usando el comando:
Add-WindowsCapability -Online -Name OpenSSH.Client*
Ahora puede conectarse a un host SSH remoto directamente desde el símbolo del sistema de Windows. Usa el siguiente comando:
ssh root@192.168.13.202
La primera vez que se conecte, también deberá agregar la huella digital de la clave ECDSA del servidor SSH a la lista de hosts conocidos. Para hacer esto, escriba “sí” > “ingresar”.
Introduzca la contraseña del usuario. Debería aparecer la línea de comando C:Windowssystem32conhost.exe:
Ahora puede usar las herramientas de OpenSSH.Client (scp.exe, sftp.exe) para copiar un archivo entre hosts usando el protocolo SSH. El siguiente comando copiará el archivo test1.log local a un host SSH de Windows remoto:
scp.exe D:PStest1.log root@192.168.13.202:c:temp
Si prefieres usar Terminal de Windowspuede agregarle los perfiles de host SSH necesarios para una conexión rápida:
- Ejecute Windows Terminal y vaya a su Configuración;
- Haga clic en el Agregar un nuevo perfil botón en la sección Perfiles;
- Especifique que desea crear un duplicado del perfil de Windows PowerShell;
- Especifique un nombre de perfil («SSH Windows 10 DEVPC» en este ejemplo);
- En el Línea de comando parámetro, especifique la cadena de conexión a su host SSH. Por ejemplo: %SystemRoot%System32WindowsPowerShellv1.0powershell.exe ssh root@192.168.13.202
- Guarde el perfil;
- Ahora, en el menú Terminal de Windows, tendrá una opción separada para una conexión SSH rápida a un host de Windows.
Pista. Puede cambiar el shell SSH predeterminado en Windows de cmd.exe a PowerShell CLI. Para hacer esto, ejecute lo siguiente en el host que ejecuta el servidor OpenSSH:
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force
Desde aquí, cuando se conecte a Windows a través de SSH, verá inmediatamente el indicador de PowerShell en lugar de cmd.exe.
Si desea utilizar la autenticación ssh basada en clave en lugar de la autenticación de contraseña, debe generar una clave usando ssh-keygen en su cliente. En tal caso, el contenido del id_rsa.pub el archivo debe copiarse en c:usersadmin.sshllaves_autorizadas archivo en Windows 10.
Después de eso, puede conectarse desde su cliente Linux a Windows 10 sin contraseña. Usa el comando:
ssh -l admin@192.168.1.90
En versiones anteriores de OpenSSH en Windows, todos los registros del servicio sshd se escribían en el archivo de texto C:ProgramDatasshlogssshd.log de forma predeterminada.
En Windows 11, los registros de SSH se pueden ver mediante la consola del Visor de eventos (eventvwr.msc). Todos los eventos de SSH están disponibles en una sección separada Registros de aplicaciones y servicios > OpenSSH > Operacional.
Por ejemplo, la captura de pantalla muestra un ejemplo de un evento con una conexión exitosa a la computadora a través de SSH. Puede ver la dirección IP del cliente ssh (nombre de host) y el nombre de usuario utilizado para conectarse.
Sshd: Contraseña aceptada para jbrown de 192.168.14.14. puerto 49833 ssh2
















Nota. Huella digital del servidor OpenSSH almacenada en un archivo C:ProgramDatasshssh_host_ecdsa_key.pub. Puede ver la huella digital de la clave ECDSA actual en un host de Windows con el comando:









