Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Cómo usar OpenSSH para mover archivos en Windows Server

Cómo usar OpenSSH para mover archivos en Windows Server

Apr 5, 2024

Los administradores de Linux y Unix están acostumbrados a usar Open Secure Shell (OpenSSH) para conectarse a servidores porque ha estado incluido en esos sistemas durante décadas. Por otro lado, los usuarios de Windows tradicionalmente han tenido que descargar herramientas de terceros como Putty o WinSCP para utilizar las capacidades de SSH.

Sin embargo, eso cambió cuando OpenSSH se convirtió en una característica opcional en Windows 10 y Windows Server 2019. Debido a que Windows ahora ofrece de forma nativa tanto el servidor SSH como el cliente SSH, no hay razón para usar nunca telnet o FTP, los cuales no tienen capacidades de cifrado — SSH ofrece una seguridad superior cuando necesitas conectarte a un servidor o copiar archivos a través de una conexión de red.

Este artículo detalla cómo instalar OpenSSH y usarlo para transferir archivos de manera segura utilizando ya sea WinSCP o PowerShell.

¿Para qué se utiliza OpenSSH?

OpenSSH es una herramienta que proporciona sesiones de comunicación seguras a través de una red informática utilizando el protocolo SSH. Puede utilizarse para una variedad de tareas, incluyendo las siguientes:

  • Inicie sesión de forma segura en máquinas remotas para ejecutar comandos para la gestión de servidores o soporte técnico.
  • Copie o mueva archivos entre dos máquinas de manera segura.

Estas tareas son seguras porque OpenSSH incluye el protocolo Secure Copy (SCP) y el protocolo SSH File Transfer (SFTP), y OpenSSH encripta todo el tráfico a través de un túnel seguro, permitiéndote transmitir datos sensibles a través de internet o una red insegura. El túnel se crea cuando el cliente y el servidor intercambian claves públicas.

Cómo agregar la característica OpenSSH en Windows

Requisitos previos

Para instalar OpenSSH en una máquina Windows:

  • El dispositivo debe estar ejecutando al menos Windows Server 2019 o Windows 10 (compilación 1809).
  • La máquina debe estar ejecutando PowerShell 5.1 o posterior.
  • Debe utilizar una cuenta que sea miembro del grupo de Administradores integrado.

Deberías comenzar verificando si OpenSSH ya está instalado. Utilizando un terminal de PowerShell de Administradores, ejecuta este comando:

      Get-WindowsCapability -Online -Name "Open*"
      

Puede ver en la captura de pantalla a continuación que el cliente OpenSSH está instalado pero el servidor OpenSSH no lo está.

Image

Puede instalar tanto el servidor OpenSSH como el cliente OpenSSH utilizando la configuración de Windows o PowerShell, como se explica a continuación.

Instalando OpenSSH usando Configuración de Windows

  1. Para comenzar, vaya a la sección Apps & features de Configuración y haga clic en Manage optional features.
Image
  • Haga clic en Add a feature.
Image
  • Para instalar el componente del servidor, seleccione OpenSSH Server y haga clic en el botón de Install.
Image
  • A continuación, instale el cliente SSH. Seleccione OpenSSH Client y haga clic en Instalar. Tenga en cuenta que si el cliente ya está instalado, verá un botón de Desinstalar en su lugar, como se muestra a continuación; en ese caso, no es necesario realizar ninguna acción.
Image
  • Configure el servicio OpenSSH para que se ejecute automáticamente utilizando el Administrador de Servicios de Windows, como se ilustra en esta captura de pantalla:
Image
  • Si Windows Defender Firewall con Seguridad avanzada está habilitado, tendrás que abrir el puerto 22, que está asignado a SSH por la Internet Assigned Numbers Authority (IANA).

Usando PowerShell para instalar OpenSSH

Alternativamente, puede instalar los componentes del servidor y cliente OpenSSH utilizando Windows PowerShell.

  1. Instale el componente del servidor OpenSSH utilizando el siguiente comando:
      Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

      
Image
  • Luego instale el cliente OpenSSH utilizando el siguiente comando:
      Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
      
  • Luego utilice los siguientes comandos de PowerShell para configurar el servicio OpenSSH e iniciarlo.
      Start-Service sshd
Set-Service -Name sshd -StartupType ‘Automatic’
      
Image
  • Como se mencionó anteriormente, el puerto 22 debe estar abierto en el cortafuegos. Puede verificar rápidamente si ya hay una regla de cortafuegos configurada para OpenSSH utilizando el siguiente comando:
      Get-NetFirewallRule -Name *ssh*
      

La salida a continuación muestra que ya se ha creado una regla.

Image

Si la regla está ausente, utilice el siguiente comando para abrir el puerto SSH:

      New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
      
  • Por último, asegúrese de que todo esté configurado correctamente y que el demonio OpenSSH esté escuchando las conexiones entrantes. Para probar la conexión, ejecute el siguiente comando desde un servidor o máquina de escritorio diferente:
      Test-NetConnection -ComputerName <computer name> -Port 22 -InformationLevel Detailed
      

Si la prueba es exitosa, verás algo como esto:

Image

Si falla, entonces podría significar varias cosas relacionadas con la conectividad de red; como que la regla del Firewall no se haya creado o habilitado en una computadora remota.

Cómo mover un archivo usando SSH

Mover un archivo usando SSH es casi lo mismo que moverlo con una aplicación FTP como WinSCP. Ten en cuenta que debes tener permiso para leer el archivo en la máquina de origen y permiso de escritura en el directorio de destino.

Mover un archivo usando WinSCP

Primero, usemos primero la utilidad WinSCP para probar el nuevo servidor SSH. (Si es necesario, puede descargar WinSCP here.) Tenga en cuenta que si usa WinSCP, no necesita habilitar el cliente OpenSSH.

  1. Abra WinSCP y defina una nueva conexión al servidor: Elija Nuevo Sitio, asegúrese de que el protocolo de archivo esté configurado en SFTP y el puerto esté configurado en 22 (los valores predeterminados), e ingrese un nombre de usuario, como se muestra en el ejemplo a continuación.
Image
  • Haga clic en el botón de Inicio de sesión y proporcione la contraseña de la cuenta que especificó. El siguiente cuadro de diálogo mostrará la huella digital de la clave ECDSA del servidor, como se muestra en la captura de pantalla a continuación. Esta clave se utiliza principalmente para asegurar que el cliente se está comunicando con el servidor correcto. Cuando el cliente se conecta al servidor por primera vez, la clave pública del host se transmite al cliente. Haga clic en para continuar.
Image
  • En la siguiente ventana, el panel izquierdo mostrará la carpeta predeterminada de la máquina de origen, y el panel derecho mostrará la carpeta predeterminada para el usuario en el servidor de destino. Navegue hasta las carpetas deseadas. En el ejemplo a continuación, hicimos clic derecho en un archivo para descargarlo al dispositivo cliente. Alternativamente, puede arrastrar los archivos de un lado a otro.
Image

Copiar un archivo o directorio utilizando OpenSSH

Para copiar un archivo usando Windows OpenSSH, puedes utilizar el siguiente comando de PowerShell. Ten en cuenta que tanto el servidor como el cliente de OpenSSH deben estar habilitados.

      scp <filename>  <username>@<hostname>:<directory_path>
      

Para copiar un directorio completo, utilice el siguiente comando.

      scp -r <local_directory_path>  <username>@<hostname>:<remote_directory_path>
      

Si el directorio no existe en el servidor de destino, se creará (asumiendo que tienes permiso para hacerlo).

También puede copiar archivos de ida y vuelta entre servidores Linux y Unix y servidores y escritorios Windows.

Cómo Netwrix puede ayudar

Si está moviendo o copiando archivos de datos, lo más probable es que necesite proteger esos datos, no solo durante la operación de transferencia sino a lo largo de su ciclo de vida. Data access governance el software de Netwrix proporciona un enfoque efectivo y escalable para el monitoreo de la actividad de archivos. Además, le ayudará a reducir el riesgo de incidentes de ciberseguridad al permitirle comprender quién tiene acceso a qué y limitar estrictamente el acceso a datos sensibles. Usted puede:

  • Audite la actividad a través de su ecosistema de TI.
  • Reduzca el acceso a datos sensibles al mínimo requerido para reducir el riesgo de amenazas internas y minimizar el daño de ransomware y otros ataques.
  • Agilice las atestaciones de privilegios regulares por parte de los propietarios de los datos.
  • Proteja los datos sensibles dondequiera que vayan con un etiquetado preciso y consistente del contenido.

Preguntas frecuentes

¿Cómo mueves un archivo usando SSH?

Cuando trabajes con sistemas similares a Unix, puedes usar el comando mv para mover un archivo de un lugar a otro en un servidor remoto usando SSH.

Para máquinas Windows, puede instalar una aplicación de servidor y cliente SSH de terceros, o habilitar la característica OpenSSH (requiere Windows Server 2019 o 2022, o Windows 10 u 11).

En cualquier caso, debe tener las credenciales de inicio de sesión para conectarse, así como los permisos necesarios para leer el archivo en la máquina de origen y permiso de escritura en el directorio de destino.

¿Permite SSH la transferencia de archivos?

Sí. SSH incluye el protocolo Secure Copy (SCP) y el protocolo SSH File Transfer (SFTP), que permiten la transferencia segura de archivos entre un host local y un host remoto.

¿Cómo puedo transferir archivos de un servidor SSH a una máquina local?

Una forma de transferir un archivo de un servidor OpenSSH a una máquina con una versión compatible de Windows o Windows Server es utilizar el siguiente comando de PowerShell:

      scp C:\path\to\local\file username@remote-server:/path/to/remote/directory
      
  • Reemplace C:\path\to\local\file con la ruta al archivo que desea copiar en su máquina local.
  • Reemplace username con el nombre de usuario en el servidor remoto. (Se le solicitará la contraseña.)
  • Reemplace remote-server con el nombre de host o la dirección IP del servidor remoto.
  • Reemplace path/to/remote/directory con la ruta al directorio en el servidor remoto donde desea que se copie el archivo.

Alternativamente, puede utilizar utilidades SSH de terceros que ofrecen menús fáciles de usar.

Compartir en

Aprende más

Acerca del autor

Asset Not Found

Ethan Israel

Product Manager

Ethan es Product Manager en Netwrix. Con más de 10 años de experiencia en la industria del software, es responsable de construir y entregar la hoja de ruta para el producto Netwrix Enterprise Auditor.