Configuración y Uso de Servidor OpenSSH en Entornos Windows

Introducción a la Configuración de SSH en Windows

Este artículo detalla métodos para implementar y configurar servidores SSH en sistemas opeartivos Windows, permitiendo conexiones remotas entre máquinas Windows. Los procedimientos cubren instalación, configuración del servicio, ajustes de firewall y optimización del entorno shell.

Opciones de Instalación del Servidor OpenSSH

Windows requiere la instalación manual de software servidor SSH. Se presentan múltiples enfoques adaptables a diferentes versiones del sistema.

Método Nativo para Windows 10 y Posteriores

Utilice PowerShell con privilegios administrativos para habilitar la capacidad OpenSSH Server:

# Instalar el servidor OpenSSH
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Este método es nativo pero puede presentar limitaciones de velocidad de descarga en ciertas redes.

Método Universal con PowerShell

Para sistemas Windows 7 en adelante, se recomienda el paquete Win32-OpenSSH:

  • Instalación MSI: Descargue el instalador desde el repositorio oficial y ejecute:
# Instalar cliente y servidor (comportamiento por defecto)
msiexec /i openssh.msi
  • Instalación mediante script: Descargue el archivo ZIP desde GitHub Releases y extraiga:
$archivoZip = 'C:\Descargas\OpenSSH-Win64.zip'
$directorioDestino = 'C:\Program Files\OpenSSH'
Expand-Archive -Path $archivoZip -DestinationPath $directorioDestino

Instalación mediante Scoop (Windows 8.1+)

Para entornos con Scoop configurado:

# Instalar OpenSSH globalmente (requiere admin)
scoop install openssh -g

# Registrar servicio sshd
$rutaSSHD = scoop which sshd
$directorioSSHD = Split-Path $rutaSSHD
cd $directorioSSHD
.\install-sshd.ps1

Configuración del Servicio SSH y Firewall

Registro del Servicio SSHd

Tras la instalación, ejecute el script de registro:

$scriptInstalacion = "$directorioDestino\install-sshd.ps1"
powershell.exe -ExecutionPolicy Bypass -File $scriptInstalacion

Apertura del Puerto y Habilitación del Servicio

# Configurar regla de firewall (cliente Windows)
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

# Iniciar servicio
Start-Service sshd

# Configurar inicio automático
Set-Service sshd -StartupType Automatic

Conexión Básica entre Clientes Windows

Utilice el cliente SSH incluido en Windows 10+ o instalado previamente:

# Conexión por nombre de equipo (red local)
ssh usuario@NombreEquipo

# Conexión por dirección IP
ssh usuario@192.168.1.100

En la primera conexión, acepte la huella criptográfica del servidor.

Personalización del Entorno Shell

El shell predeterminado para sesiones SSH es cmd.exe. Modifique el registro para usar PowerShell:

# Establecer PowerShell 7 como shell predeterminado
New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' `
    -Name DefaultShell `
    -Value 'C:\Program Files\PowerShell\7\pwsh.exe' `
    -PropertyType String -Force

# Establecer opción de comando por defecto
New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' `
    -Name DefaultShellCommandOption `
    -Value '-c' `
    -PropertyType String -Force

Configuración de Variables de Entorno

Agregue la ruta de OpenSSH al PATH para acceso global:

$rutaOpenSSH = 'C:\Program Files\OpenSSH\OpenSSH-Win64'
$pathActual = [Environment]::GetEnvironmentVariable('Path', 'Machine')
$nuevoPath = "$pathActual;$rutaOpenSSH"
[Environment]::SetEnvironmentVariable('Path', $nuevoPath, 'Machine')

Consideraciones de Seguridad y Autenticación

El archivo authorized_keys en ~/.ssh/ almacena claves públicas para autenticación. Cada línea contiene:

  1. Tipo de clave (RSA/ED25519)
  2. Clave pública
  3. Opciones de restricción (opcional)
  4. Comentario identificativo

Asegure permisos del archivo (600) y revise periódicamente las claves autoirzadas.

Resolución de Problemas Comunes

  • Conexión rechazada: Verifique que el servicio sshd está ejecutándose y el firewall permite el puerto 22.
  • Autenticación fallida: Confirme la configuración del shell predeterminado y los permisos de authorized_keys.
  • Comandos no encontrados: Valide que la ruta de OpenSSH está en las variables de entorno del sistema.

Etiquetas: openssh Windows PowerShell SSHd ServidorSSH

Publicado el 8-30 05:57