Cómo instalar OpenSSH en Windows

Hasta hace poco, si quería usar SSH en Windows, tenía que confiar en clientes de terceros como PuTTY o instalar paquetes de servidor SSH de fuentes similares.

Sin embargo, la actualización de abril de 2018 (versión 1803) introdujo OpenSSH como una función integrada. Siempre que utilice versiones compatibles de Windows, puede instalar los componentes de servidor y cliente de OpenSSH como características opcionales.

Es por eso que en este artículo cubrimos los requisitos, los pasos completos para instalar OpenSSH de diferentes maneras y cómo comenzar.

Cómo instalar OpenSSH

Antes de comenzar, asegúrese de que se cumplan los siguientes requisitos:

Características opcionales (GUI)

La forma más fácil de instalar OpenSSH en Windows es a través de la página de funciones opcionales en la configuración de Windows.

  1. Presione Win + I y vaya a Aplicaciones > Funciones opcionales.
  2. haga clic en mostrar funciones en la sección Agregar función opcional.
    añadir una función opcional
  3. Escoger Cliente OpenSSH y Servidor OpenSSH de la lista y presione Siguiente > Instalar.
    instalar-openssh-cliente-servidor
  4. Después de instalar los componentes, presione Win + R, ingrese services.mscy presione Entrar.
  5. Encuentra el Servidor OpenSSH SSH y Agente de autenticación OpenSSH servicios aquí.
    abresh-ssh-servidor-servicio-sshd
  6. Haga doble clic en él y empezando estos servicios Si lo desea, también puede cambiar el tipo de inicio a Automáticamente. Luego guarde los cambios.
    sshd-boot-tipo-automático
  7. Luego presione Win + R, ingrese wf.mscy presione Entrar.
  8. En la sección Reglas de entrada, asegúrese de que el Servidor OpenSSH SSH (sshd) La regla está habilitada.
    regla opensh-windows-firewall
  9. La configuración básica está completa. Para conocer más pasos, consulte la sección Primeros pasos con OpenSSH. Puede seguir los mismos pasos para desinstalar OpenSSH si es necesario.

Potencia Shell

Para trabajar de manera más eficiente, también puede realizar los mismos pasos anteriores en una ventana elevada de PowerShell.

  1. Presione Win + R, ingrese powershelly presione CTRL+MAYÚS+ENTRAR.
  2. Primero, asegúrese de que los componentes de OpenSSH estén disponibles:
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
    get-windows-opportunities-openssh
  3. Luego instale los componentes de servidor y cliente de OpenSSH:
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    agregar-ventanas-capacidad-openssh
  4. iniciar el SSD y agente ssh Servicios y cambie su tipo de inicio como tal a Automático:
    Set-Service -Name sshd -StartupType 'Automatic' -Status Running
    Set-Service -Name ssh-agent -StartupType 'Automatic' -Status Running
    establecer-servicio-sshd-estado-activo
  1. Luego configure la regla de Firewall de Windows requerida para el tráfico SSH:
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
    new-net-firewall-regla-ssh
  2. Una vez completada la instalación, puede comenzar a usar SSH. Consulte la sección Primeros pasos con OpenSSH si necesita ayuda con esto.
  3. Si desea eliminar los componentes de OpenSSH, estos son también los comandos necesarios:
    Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
    Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    quitar-ventanas-capacidad-ssh

GitHub (MSI)

Si descargó el paquete OpenSSH de GitHub, puede instalar los componentes usando el instalador MSI msiexec /i <path to openssh.msi>.

  • Por ejemplo, si el archivo está en su carpeta actual, use
    msiexec /i openssh.msi
  • Por ejemplo, si el archivo está en su carpeta Descargas, use
    msiexec /i C:usersanupdownloadsopenssh.msi
  • Se usa para desinstalar OpenSSH
    msiexec /x <path to openssh.msi>
  • Suponga que el instalador está en la carpeta actual y solo desea instalar o eliminar ciertos componentes. Puede utilizar los siguientes comandos según sea necesario:
    msiexec /i openssh.msi ADDLOCAL=Client
    msiexec /i openssh.msi ADDLOCAL=Server
    msiexec /i openssh.msi REMOVE=Client
    msiexec /i openssh.msi REMOVE=Server

Después de instalar los componentes, siga estos pasos para actualizar la variable del sistema PATH:

  1. Presione Win + R, ingrese systempropertiesadvancedy presione Entrar.
  2. haga clic en Variables de entorno. En la sección Variables del sistema, seleccione camino y haga clic Para editar.
    Variable de ruta del sistema de Windows
  3. controlar %systemroot%System32openssh Aquí. Si no está allí, haga clic en Nuevo y añádelo a la lista. Tenga en cuenta que esta es la ruta de instalación predeterminada. Si instaló OpenSSH en una ruta diferente, cambie el valor de este paso en consecuencia.
    ruta del sistema openssh
  4. Presionar Aceptar > Aceptar para guardar los cambios.
Leer:   ¿Cómo reconstruir una computadora en Windows?

Ahora puedes caminar Get-Service -Name ssh* en PowerShell para verificar que los componentes estén instalados correctamente. Si también necesita iniciar los servicios necesarios o abrir puertos, consulte una de las secciones anteriores para conocer los pasos.

Finalmente, si desea utilizar otros métodos como Winget o Chocolatey, le recomendamos que consulte la wiki de OpenSSH en GitHub. Además de las instrucciones de instalación, también incluye varios ejemplos de uso y guías que pueden resultarle útiles.

Configuración del servidor OpenSSH

Por defecto, el servidor OpenSSH (sshd) en Windows lee los datos de configuración %programdata%sshsshd_config. Este archivo enumera numerosas opciones de configuración, pero dado que la implementación de Windows de OpenSSH aún es bastante nueva, actualmente solo se admiten ciertas configuraciones.

Hemos enumerado algunos cambios de configuración comunes a continuación para su referencia. Recomendamos leer la lista completa de opciones en la guía de configuración del servidor OpenSSH de Microsoft o en GitHub. Además, no olvide reiniciar el servicio sshd para aplicar los cambios.

  1. Haz un comentario sobre el puerto línea y cambie el valor si desea cambiar el puerto SSH. También debe agregar una regla de firewall para permitir el tráfico entrante en este puerto.
    archivo de configuración sshd
  2. cambia eso Dirección de escucha de 0.0.0.0 a otra cosa si solo desea escuchar una dirección IP específica. Si desea escuchar en varias direcciones IP, agregue varias reglas de ListenAddress en consecuencia.
  3. cambiar autenticación GSSAPI a sí si desea utilizar la autenticación Kerberos.
  4. añade el permitir grupos, permitir a los usuarios, rechazar gruposy rechazar usuario Directrices para determinar qué grupos y usuarios pueden acceder al servidor SSH.
    • Cuando trabaje con usuarios y grupos de dominio, consulte los siguientes ejemplos de referencia de formato:
      DenyUsers tntadmin@192.168.10.17
      DenyUsers tnt*
      AllowGroups tntsshclients tntserveradmins
    • Si está tratando con usuarios y grupos de grupos de trabajo, consulte estos ejemplos:
      AllowUsers anup@192.168.10.17
      AllowGroups sshclients
  5. Finalmente, puede usar el siguiente comando en PowerShell para configurar el shell predeterminado de OpenSSH en PowerShell en lugar del símbolo del sistema:
    New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force
    cambiar-ssh-default-shell-a-powershell

Comience con OpenSSH

Puede utilizar cualquiera de los métodos anteriores para configurar otro sistema Windows como cliente, servidor OpenSSH o ambos. Y si es nuevo en SSH, estos son algunos pasos básicos para comenzar:

  1. Primero presione Win + R, ingrese sysdm.cply presione Entrar.
  2. Comprueba si tienes uno grupo de trabajo o dominio usuario aquí.
    Dominio del grupo de trabajo Propiedades del sistema
  3. Presione Win + R, ingrese powershelly presione Entrar.
  4. Si es un usuario de un grupo de trabajo, ingrese el siguiente comando y continúe paso 6:
    ssh user@host
    ssh usuario@host
  5. Si es un usuario de dominio, ingrese uno de los siguientes comandos:
    ssh -l user@domain host
    ssh domainuser@host
    ssh user@domain@host
    ssh user@host
    comando ssh-dominio-usuario
  1. Al iniciar sesión por primera vez, debe confirmar que el host es de confianza. Si ingresa sí, el host se agregará a la lista de hosts conocidos.
    huella digital ssh
  2. Ahora escriba la contraseña de la cuenta de host y presione Entrar.
Leer:   Cómo reparar Windows no pudo iniciar el servicio en el error de la computadora local.

La autenticación basada en contraseña generalmente está bien, pero idealmente debería usar métodos de autenticación aún más seguros como Kerberos y claves SSH. Para Kerberos, complete los siguientes pasos:

  1. En el servidor unido al dominio, vaya a %programdata%ssh.
  2. abre eso sshd_config archivo con un editor de texto.
  3. Descomente la línea GSSAPIAuthentication y configúrela y guarde los cambios.
    gssapi-autenticación-yes-sshd-config
  4. En Powershell, use los siguientes comandos para reiniciar el servicio sshd y aplique los cambios anteriores:
    net stop sshd
    net start sshd
    net-stop-sshd-net-start-sshd
  5. Ahora ingrese en el cliente de Windows conectado como usuario de dominio ssh -K hostname.

Autenticarse con la clave SSH

Al conectarse entre dominios, no se recomienda la autenticación basada en contraseña, ya que es vulnerable a la fuerza bruta. En su lugar, debe utilizar la autenticación de clave pública. Utiliza algoritmos criptográficos para generar un archivo de clave pública y privada.

La clave pública de un usuario se almacena en el servidor SSH y se compara con la clave privada del lado del cliente para la autenticación. Siempre que la clave privada esté bien protegida, este método de autenticación es mucho más seguro.

Debe generar el par de claves en el sistema del cliente, crear un archivo de claves autorizadas en el servidor y almacenar la clave pública del cliente en ese archivo. Para hacer esto, comience con los siguientes pasos en el sistema del servidor:

  1. Presione Win + R, ingrese powershelly presione CTRL+MAYÚS+ENTRAR.
  2. Haz eso admins_authorized_keys Archivo.
    • Para los usuarios del grupo Administradores:
      New-Item -Type File -Path C:ProgramDatasshadministrators_authorized_keys
    • Para usuarios estándar:
      New-Item -Type File -Path C:Usersusername.sshadministrators_authorized_keys
  3. En nuestro caso, creamos el archivo usando una cuenta de administrador. Si está utilizando una cuenta estándar, cambie la ruta del archivo en el resto de los comandos según corresponda.
  4. Establezca los derechos de acceso para el archivo clave con:
    get-acl C:ProgramDatasshssh_host_dsa_key | set-acl C:ProgramDatasshadministrators_authorized_keys

Ahora inicie una ventana elevada de PowerShell en el sistema cliente y siga estos pasos:

  1. Usar cd ~/.ssh para ir al directorio .ssh y generar el par de claves con él ssh-keygen.
    Generar ssh-keygen-public-private-rsa-key
  2. Cuando se le solicite la ubicación del archivo, presione Aporte para usar el valor predeterminado:
    C:Usersusername.ssh
  3. Agregue una frase de contraseña para su clave privada si desea aumentar aún más la seguridad.
    ssh-keygen-randomart-imagen
  4. Ahora cambia el usuario y anfitrión Valores y ejecute los siguientes comandos. Agrega la clave pública del cliente al archivo de claves autorizadas en el servidor.
    • $public_key = Get-Content ~/.ssh/id_rsa.pub
    • ssh user@host "'$($public_key)' | Out-File C:ProgramDatasshadministrators_authorized_keys -Encoding UTF8 -Append"
      agregar-cliente-ssh-clave-pública-al-servidor
  5. Introduce tu contraseña para autorizar el proceso. Ahora puede conectarse con la autenticación de clave pública.
Leer:   ¿Por qué mi computadora es repentinamente lenta? 11 maneras de arreglarlo

Solucionar errores comunes

Los errores SSH como Puerto 22 Conexión rechazada o Conexión agotada son bastante comunes. Si siguió los pasos de este artículo, los pasos básicos como asegurarse de que los servicios SSH se estén ejecutando, reiniciar, permitir el tráfico SSH a través del firewall, agregar SSH a la RUTA del sistema, etc. ya están cubiertos.

Además, aquí hay algunos otros pasos de solución de problemas que vale la pena probar:

  • Primero, asegúrese de que los pasos anteriores también se realicen en el sistema remoto.
  • Vuelva a intentarlo y asegúrese de haber ingresado las credenciales correctas.
  • Utilice la dirección IP del host en lugar del nombre de host. Si esto funciona, resuelva los problemas de DNS borrando el caché o usando un servidor diferente.
  • Haga ping al host para asegurarse de que no haya pérdida de paquetes.
  • Compruebe el puerto SSH y Dirección de escucha en el archivo sshd_config del servidor.
  • Usar banderas extendidas (ssh -v o ssh -vvv) para obtener más información sobre lo que va mal.

Gracias por leer absolutoyrelativo.com. ¡Hasta la próxima!

Deja un comentario