Usar SSH para usar de forma segura la Conexión a Escritorio remoto a Windows

Actualización de la página :
Fecha de creación de la página :

Entorno operativo

Conexión remota a Windows
  • Windows 11
Conexión remota desde Windows
  • Windows 10
OpenSSH
  • OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Prerrequisitos

Conexión remota a Windows
  • Windows 10 o posterior (se requiere Pro u otra edición). Sin embargo, esto no se aplica si OpenSSH se puede preparar por separado.
  • Windows Server 2019 o posterior. Sin embargo, esto no se aplica si OpenSSH se puede preparar por separado.
Conexión remota desde Windows
  • Windows (la mayoría de las versiones son posibles)
  • Windows Server (la mayoría de las versiones son posibles)

Al principio

Después de crear un entorno de Windows en Internet en la nube o VPS, a menudo se utiliza una conexión de escritorio remoto para operar el destino remoto de Windows.

En la conexión de escritorio remoto, el contenido de la comunicación está encriptado y, si no se filtran el nombre de usuario y la contraseña, otros no iniciarán sesión sin permiso. Siempre existe la preocupación de que la gente intente iniciar sesión desde cualquier lugar.

Algunas nubes importantes tienen firewalls separados de las máquinas virtuales y hay una función para restringir el origen de la conexión. Es posible que estas funciones no estén disponibles en todos los servicios. Especialmente en entornos construidos con un presupuesto bajo, hay muchos casos en los que dichas funciones no están disponibles.

Por lo tanto, esta vez, me gustaría limitar la fuente de conexión tanto como sea posible agregando la función SSH . Dado que se utilizan la clave privada y la clave pública, siempre que no se filtre la clave privada, la posibilidad de iniciar sesión de forma remota desde otro entorno se puede minimizar tanto como sea posible.

En este caso, usaremos OpenSSH para construir el entorno SSH.

Creación de un entorno de Windows de destino remoto

Cree un entorno de Windows que le permita conectarse de forma remota a través de Internet. No importa dónde se construya, siempre y cuando se transmita a través de Internet, pero para esta comprobación, se compilará como una máquina virtual en Microsoft Azure. Los pasos para compilar en Azure no son relevantes para esta sugerencia, por lo que los omitiré. Dado que esta vez se usará el puerto 22, si usa Azure, asegúrese de que la comunicación del puerto 22 pasa a través de la configuración de la máquina virtual en Azure.

Si va a compilar en un entorno distinto de Azure, asegúrese de que está en una posición en la que puede establecer una conexión de escritorio remoto a Windows para su entorno.

Además, la versión de Windows tiene como destino Windows 10 o posterior, o Windows Server 2019 o posterior, lo que facilita la creación de un entorno OpenSSH. Se puede implementar en un entorno anterior, pero requiere un poco más de tiempo y esfuerzo porque necesita descargar y configurar OpenSSH por separado.

En ese caso, el procedimiento es el mismo que para SFTP, así que consulte los siguientes consejos.

Configuración de OpenSSH

A partir de aquí, trabajaremos en el entorno remoto de Windows. Primero, conéctese al destino remoto con una conexión de escritorio remoto. Si su nube o VPS proporciona una consola, puede usarla. Dado que esta vez estamos operando en un entorno Windows 11, los pasos pueden ser ligeramente diferentes en otras versiones.

Abra el menú Inicio y seleccione Configuración.

Selecciona una aplicación.

Seleccione Características opcionales.

Seleccione Mostrar entidades.

Hay "OpenSSH Server" un poco más abajo en la lista, así que compruébalo y haz clic en "Siguiente".

Haga clic en Instalar.

Cuando se complete la instalación y se agregue "OpenSSH Server" a la lista a continuación, habrá terminado.

Configuración del servicio para OpenSSH

Haga clic con el botón derecho en el menú Inicio y seleccione Administración de equipos.

Seleccione Servicios en la lista de la izquierda.

Busque "OpenSSH SSH Server" en la lista central, haga clic con el botón derecho y seleccione "Propiedades".

Al conectarnos de forma remota, queremos que el servidor OpenSSH se esté ejecutando, así que establezca el "Tipo de inicio" en "Automático".

Dado que no se está ejecutando en este momento, lo comenzaré aquí, incluida la configuración.

Una vez iniciado, haga clic en el botón Aceptar para cerrarlo. Debería estar ejecutándose en la lista.

Configuración de OpenSSH

En el estado inicial, la autenticación por clave privada está deshabilitada, así que configúrela. Abra la siguiente carpeta en el Explorador.

  • C:\ProgramData\ssh

Sin embargo, la carpeta anterior puede ser una carpeta oculta, así que hágala visible configurando las opciones del Explorador.

Hay un archivo llamado en la carpeta, así que ábrelo con un editor de texto como el sshd_config Bloc de notas. Dado que esta vez realizaremos cambios, copie y duplíquelo como sshd_config_old copia de seguridad antes del cambio.

PubkeyAuthentication yes Buscar: Este elemento es una configuración para habilitar la autenticación de clave secreta. De forma predeterminada, está deshabilitado y dice , pero está comentado, yes así que descomítalo.

Antes del cambio

#PubkeyAuthentication yes

Después del cambio

PubkeyAuthentication yes

PasswordAuthentication yes Buscar: Este elemento es una configuración para habilitar la autenticación con contraseña. Está habilitado de forma predeterminada, e incluso si habilita la autenticación de clave privada, no tiene sentido desde el punto de vista de la seguridad si permanece habilitado, así que descomente y no establezca .

Antes del cambio

#PasswordAuthentication yes

Después del cambio

PasswordAuthentication no

Comenta la siguiente línea cerca del final: Esta es la configuración clave para el grupo de administradores, y la deshabilitaremos porque admitiremos inicios de sesión por usuario en este caso.

Antes del cambio

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Después del cambio

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Después de guardar el archivo después OpenSSH SSH Server del cambio, reinicie el servicio para reflejar la configuración.

Si desea cambiar el puerto

Si desea cambiar el puerto SSH, cambie lo siguiente.

Antes del cambio

#Port 22

Después del cambio

#Port <任意の番号>

Al cambiar el número de puerto, el puerto predeterminado no será atacado, lo que conducirá a una mayor seguridad. Por otro lado, aumenta la complejidad de la operación, por lo que hay que tener cuidado.

Si cambia el número de puerto, debe especificar un puerto distinto del 22 al conectarse.

Creación de claves privadas y públicas

Esta es una tarea del lado del cliente. Sin embargo, realmente no importa dónde trabajes. Sin embargo, tenga cuidado de no filtrar la clave privada que creó.

Si tiene Windows 10 o posterior, Windows Server 2019 o posterior, el cliente OpenSSH está instalado de forma predeterminada, por lo que puede crearlo fácilmente con un comando. En otros entornos, deberá instalar un cliente OpenSSH independiente o utilizar una herramienta independiente.

Los siguientes consejos son para SFTP, pero consúltelos para configurar un cliente OpenSSH.

En el entorno cliente, inicie un símbolo del sistema, PowerShell, terminal o cualquier herramienta que pueda ejecutar comandos.

Dado que va a crear un archivo, vaya cd a cualquier directorio con un comando.

Ejecute el siguiente comando:

ssh-keygen -t rsa -f id_rsa

Puede establecer una frase de contraseña (contraseña) para la clave, así que ingrésela si es necesario. Si establece una frase de contraseña, se mejorará la seguridad, pero aumentará el tiempo y el esfuerzo de ingresar la frase de contraseña en el proceso posterior.

Se han creado una clave pública (id_rsa.pub) y una clave privada (id_rsa).

La clave pública (id_rsa.pub) se colocará en el destino remoto más adelante. La clave privada se puede ubicar en cualquier lugar del cliente remoto, pero debe ubicarse en una carpeta a la que solo pueda acceder la cuenta que se usa por motivos de seguridad. Básicamente, creo que no hay problema si lo colocas en la siguiente carpeta del lado del cliente. Si utiliza el cliente OpenSSH, navegará a esta carpeta de forma predeterminada.

  • C:\Users\<ユーザー名>\.ssh

Si no puede crear la carpeta anterior en el Explorador, puede crearla con el siguiente comando.

cd C:\Users\<ユーザー名>
mkdir .ssh

Colocación de claves públicas

Se trata de una operación remota. Coloque la clave pública creada (id_rsa.pub) en el destino remoto. Mueva este archivo a la siguiente carpeta: <ユーザー名> es el nombre de la cuenta de usuario en la que iniciará sesión cuando se conecte de forma remota.

  • C:\Users\<ユーザー名>\.ssh

Si no tiene una carpeta y no puede crear una carpeta en el Explorador, puede crear una carpeta con el siguiente comando.

cd C:\Users\<ユーザー名>
mkdir .ssh

Cambie el archivo authorized_keys de clave pública implementado a . Eso es todo.

Dependiendo de su entorno, es posible que ya authorized_keys tenga el archivo. Este puede ser el caso si ha configurado una conexión SSH para otros fines. En ese caso authorized_keys , ha registrado el archivo abriendo el archivo y el archivo con el Bloc de notas, etc., y id_rsa.pub enumerando el contenido del id_rsa.pub en la siguiente línea del authorized_keys. Puede registrar varias claves públicas en authorized_keys.

Conéctese con SSH

Al conectarse con el comando OpenSSH

Hay varias formas de conectarse con SSH, pero comencemos con una conexión basada en comandos. De hecho, la conexión con el menor número de pasos es por comando. Como requisito previo, debe tener instalado el cliente OpenSSH.

Inicie la herramienta de comandos de su elección (símbolo del sistema, PowerShell, Terminal).

Introduzca el siguiente comando:

Formato de comando

ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>

A continuación se explica mejor los parámetros. Configúrelo de acuerdo con su entorno.

del nombre
Descripción del parámetro variable
ssh Una declaración para usar SSH con OpenSSH.
-Yo Una declaración para usar un archivo de clave privada.
< ruta de acceso del archivo de clave privada> Describa la ubicación del archivo de clave privada que ha creado. C:\Users\<ユーザー名>\.ssh La ruta es opcional. De lo contrario, se requiere una ruta absoluta o relativa.
-L Esta declaración especifica el puerto que se utilizará de forma local y remota al conectarse a un destino remoto.
< puerto franco local> La conexión a Escritorio remoto suele usar el puerto 3389, pero puede conectarse mediante cualquier puerto. No importa qué número sea, siempre y cuando sea gratis.
127.0.0.1 Esta es la dirección IP del host que reconoce desde dónde se conecta el destino remoto. Básicamente, 127.0.0.1 está bien.
3389 El número de puerto que se utilizará en el destino remoto. El destino remoto suele estar conectado por el puerto 3389 con una conexión de escritorio remoto, por lo que se puede dejar como está.
< nombre de la cuenta de usuario a la que desea conectarse> Especifique la cuenta a la que desea conectarse en el destino remoto.
< dirección IP o el nombre de host del servidor al que se va a conectar> Especifica el servidor de destino remoto.

Entrada de ejemplo

ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194

La primera vez, se le pedirá una tecla, así que yes escriba y presione Enter.

Si tiene una frase de contraseña establecida para su clave privada, debe ingresarla.

Lo siguiente estará en un estado conectado. Puede ver que se muestra el usuario en el lado del servidor, no el cliente. Mientras se muestra esta ventana, está conectada, así que no la cierre. Si lo cierra, la conexión se romperá.

Al conectarse con PuTTY

Aquí, intentaremos conectarnos a SSH con una herramienta llamada PuTTY.

Conversión de la clave privada

En primer lugar, si utilizas PuTTY, tendrás que convertir la clave privada. Creo que hay "puttygen .exe" en la herramienta adjunta, así que por favor inícialo.

Seleccione "Conversiones -> Importar clave" en el menú.

Seleccione la clave privada que creó, en este caso, "id_rsa".

Si ha establecido una frase de contraseña, ingrésela.

Seleccione "Archivo -> Guardar clave privada" en el menú.

「. .ppk".

Una vez creado, ya está.

Configuración de PuTTY

Inicie putty.exe.

Introduzca la dirección IP del entorno al que desea conectarse. Si tienes un dominio, puedes conectarte con un nombre de dominio.

Seleccione Conexión -> datos en el menú de la izquierda. En el campo Nombre de usuario de inicio de sesión automático, escriba el nombre de la cuenta del entorno al que desea conectarse.

En el menú de la izquierda, seleccione Conexión -> SSH -> Túneles. Ingrese cada uno de ellos en el campo de entrada a continuación y haga clic en el botón "Agregar".

valor del
Comentarios sobre elnombre del parámetro
Puerto de origen 13389 Cualquier puerto gratuito servirá. Lo usaré más tarde
Destino 127.0.0.1:3389

Cuando se agrega, debería verse así:

A continuación, seleccione "Conexión -> SSH -> Auth -> Cledentioals" en el menú de la izquierda y haga clic en el botón Examinar para "Archivo de clave privada para autenticación".

Seleccione la clave privada que ha guardado.

Seleccione "Sesión" en el menú de la izquierda, ingrese un nombre de su elección para Guardar sesiones y haga clic en el botón Guardar. A partir de la próxima vez, está bien si carga esta configuración.

Después de confirmar el guardado, haga clic en el botón "Abrir".

Se mostrará la siguiente pantalla cuando se conecte por primera vez. Haga clic en el botón Aceptar.

Verás una pantalla que parece un símbolo del sistema. Si tiene una frase de contraseña para la clave privada, escrígala.

Si el contenido de la pantalla cambia como se muestra a continuación, se conectará. Puede ver que se muestra el usuario en el lado del servidor, no el cliente. Mientras se muestra esta ventana, está conectada, así que no la cierre. Si lo cierra, la conexión se romperá.

Realizar una conexión de escritorio remoto con SSH

Ahora, hagamos una conexión de escritorio remoto mientras estamos conectados con SSH.

Al conectarse, la parte de la computadora no es la dirección remota real, sino "localhost:< > el nombre del puerto especificado en la conexión SSH". En el ejemplo, se especificó 13389, por lo que aquí nos conectaremos a "localhost:13389".

Si se muestra la pantalla de autenticación, puede juzgar que la conexión se ha completado. Ingrese su nombre de usuario y contraseña para conectarse.

Si puedes conectarte así, has tenido éxito.

Deshabilite las conexiones regulares de escritorio remoto en la configuración del firewall

En el momento del elemento anterior, ahora puede conectarse con un escritorio remoto mediante SSH. Sin embargo, en este estado, "Conexión a Escritorio Remoto por SSH" solo se ha agregado a "Conexión a Escritorio Remoto Normal". En términos de seguridad, no aporta nada. Por lo tanto, lo siguiente que debe hacer es evitar una "conexión normal de escritorio remoto".

Si realiza esta configuración, no podrá conectarse excepto para "conexión de escritorio remoto por SSH", por lo que si se mete con la configuración, es posible que no tenga los medios para conectarse de forma remota. Por lo tanto, asegúrese de verificar de antemano que la "conexión de escritorio remoto por SSH" es posible y poder operar el entorno remoto por otros medios, incluso si desaparece el cliente al que está intentando conectarse.

Aquí, configure los ajustes del firewall en "Conexión a escritorio remoto a través de SSH". Esto se debe a que si realiza la operación con "conexión normal de escritorio remoto", se desconectará en el momento en que configure el firewall.

Ver Firewall de Windows Defender con seguridad avanzada. Dependiendo de la versión de Windows, la ubicación de la pantalla variará, así que muéstrela de acuerdo con esa versión.

Seleccione Reglas de entrada en el menú de la izquierda.

En la lista central, busque "Escritorio remoto - Modo de usuario (TCP In)" y abra sus propiedades.

Seleccione la pestaña Ámbito, cambie la dirección IP local a Estas direcciones IP y haga clic en el botón Agregar.

Ingrese 127.0.0.1 y haga clic en el botón Aceptar. Esto evitará las conexiones de escritorio remoto desde cualquier lugar que no sea 127.0.0.1. 127.0.0.1 es la dirección IP que apunta a su máquina. Si ingresa el valor incorrecto, es posible que no pueda conectarse desde ningún lugar, así que tenga cuidado.

Haga clic en el botón Aceptar para confirmar.

Por el momento, esto por sí solo es una contramedida, pero también configuremos "Escritorio remoto - Modo de usuario (recepción UDP)".

Verifica que no puedas conectarte de forma remota con nada que no sea SSH

Ahora, intente realizar una conexión de escritorio remoto desde otra PC que no esté usando SSH.

Si puede conectarse, se mostrará la pantalla de autenticación. Está bien si puede confirmar que la conexión no se puede realizar como se muestra a continuación.

Resumen

Con la última versión de Windows, ahora es fácil introducir un servidor SSH. Al agregar configuraciones, ahora puede aumentar fácilmente la seguridad de su conexión de escritorio remoto. Sin embargo, dado que solo es responsable de las medidas de seguridad en el propio Windows, Si desea hacerlo más seguro, creo que es preferible configurar un servidor SSH o firewall separado antes de conectarse a Windows.

Además, puede establecer la seguridad de forma estricta mediante SSH, pero cuando es demasiado difícil, nadie puede conectarse debido a un error operativo. Ten cuidado de no terminar con eso.