Conexión mediante Secure Shell (SSH) e inicio de sesión en una máquina virtual de Azure que ejecuta Windows
Se aplica a: ✔️ máquinas virtuales Windows ✔️ conjuntos de escalado flexibles
El proyecto Win32-OpenSSH hace que la conectividad remota con Secure Shell sea omnipresente al proporcionar compatibilidad nativa en Windows. La funcionalidad se proporciona en Windows Server versión 2019 y posteriores, y se puede agregar a versiones anteriores de Windows mediante una extensión de máquina virtual.
En los ejemplos siguientes se usan variables. Puede establecer variables en el entorno como se indica a continuación.
Shell | Ejemplo |
---|---|
Bash/ZSH | myResourceGroup='resGroup10' |
PowerShell | $myResourceGroup='resGroup10' |
Habilite SSH
En primer lugar, deberá habilitar SSH en la máquina Windows.
Implemente la extensión SSH para Windows. La extensión proporciona una instalación automatizada de la solución Win32-OpenSSH, similar a habilitar la funcionalidad en versiones más recientes de Windows. Use los ejemplos siguientes para implementar la extensión.
az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0
Apertura del puerto TCP
Asegúrese de que el puerto adecuado (de forma predeterminada, TCP 22) está abierto para permitir la conectividad con la máquina virtual.
az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
La máquina virtual debe tener una dirección IP pública. Para comprobar si la máquina virtual tiene una dirección IP pública, seleccione Información general en el menú izquierdo y examine la sección Redes. Si ve una dirección IP junto a Dirección IP pública, la máquina virtual tiene una dirección IP pública. Para más información sobre cómo agregar una dirección IP pública a una máquina virtual existente, consulte Asociar una dirección IP pública a una máquina virtual
Compruebe que la máquina virtual se esté ejecutando. En la pestaña Información general, en la sección Información esencial, compruebe que el estado de la máquina virtual sea En ejecución. Para iniciar la máquina virtual, seleccione Iniciar en la parte superior de la página.
Authentication
Puede autenticarse en máquinas Windows mediante el nombre de usuario y la contraseña o las claves SSH. Azure no admite el aprovisionamiento automático de claves públicas en máquinas Windows, pero puede copiar la clave mediante la extensión RunCommand.
Información general sobre SSH y sus claves
SSH es un protocolo de conexión cifrada que permite inicios de sesión seguros a través de conexiones no seguras. Aunque SSH proporciona una conexión cifrada, el uso de contraseñas con conexiones SSH deja la máquina virtual vulnerable a ataques por fuerza bruta. Se recomienda conectarse a una máquina virtual a través de SSH mediante un par de claves pública y privada, también conocidas como claves SSH.
La clave pública se coloca en la máquina virtual.
La clave privada permanece en el sistema local. Esta clave se debe proteger, por lo que no se debe compartir.
Cuando se usa un cliente SSH para conectarse a la máquina virtual (que tiene la clave pública), la máquina virtual remota comprueba que el cliente posee la clave privada. Si es el caso, se le concede acceso a la máquina virtual.
En función de las directivas de seguridad de la organización, puede volver a usar un par de claves públicas y privadas único para obtener acceso a varias máquinas virtuales y servicios de Azure. No es necesario usar ningún par de claves independiente para cada máquina virtual o servicio al que se quiera acceder.
La clave pública se puede compartir con cualquiera. Sin embargo, solo usted (o su infraestructura de seguridad local) debe tener acceso a la clave privada.
Formatos de clave SSH compatibles
Actualmente, Azure admite los siguientes tipos de clave:
- Protocolo SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) con una longitud mínima de 2048 bits
- Claves ED25519 con una longitud fija de 256 bits
Actualmente no se admiten otros formatos clave, como Diffie-Hellman (ECDH) y Elliptic Curve Digital Signature Algorithm (ECDSA).
Copie una clave pública mediante la extensión RunCommand.
La extensión RunCommand proporciona una solución sencilla para copiar una clave pública en máquinas Windows y asegurarse de que el archivo tiene los permisos correctos.
az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"
Conexión mediante la CLI de Azure
Conéctese a máquinas Windows mediante comandos Az SSH
.
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername
También es posible crear un túnel de red para puertos TCP específicos mediante la conexión SSH. Un buen caso de uso para esto es Escritorio remoto, que tiene como valor predeterminado el puerto 3389.
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389
Conexión desde Azure Portal
- Vaya a Azure Portal para conectarse a una máquina virtual. Busque y seleccione Máquinas virtuales.
- Seleccione la máquina virtual en la lista.
- Seleccione Conectar en el menú de la izquierda.
- Seleccione la opción que se ajuste a su forma preferida de conectarse. El portal le ayuda a pasar los requisitos previos para conectarse.
Pasos siguientes
Para más información sobre cómo transferir archivos a una máquina virtual existente, consulte Uso de SCP para mover archivos desde una máquina virtual y hacia allí.