Guide pratique pour se connecter avec Secure Shell (SSH) à une machine virtuelle Azure exécutant Windows
S’applique à : ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles
Le projet Win32 OpenSSH opère la connectivité à distance avec Secure Shell omniprésente en fournissant une prise en charge native dans Windows. La fonctionnalité est fournie dans Windows Server versions 2019 et ultérieures, et peut être ajoutée à des versions antérieures de Windows avec une extension de machine virtuelle.
Les exemples ci-dessous utilisent des variables. Vous pouvez définir des variables dans votre environnement comme suit.
Shell | Exemple |
---|---|
Bash/ZSH | myResourceGroup='resGroup10' |
PowerShell | $myResourceGroup='resGroup10' |
Activation de SSH
Tout d’abord, vous devez activer SSH dans votre machine Windows.
Déployez l’extension SSH pour Windows. L’extension fournit une installation automatisée de la solution Win32 OpenSSH, à l’image de l’activation de la fonctionnalité dans les versions plus récentes de Windows. Utilisez les exemples suivants pour déployer l’extension.
az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0
Ouvrir le port TCP
Vérifiez que le port approprié (par défaut, TCP 22) est ouvert pour autoriser la connectivité à la machine virtuelle.
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
Votre machine virtuelle doit posséder une adresse IP publique. Pour vérifier si votre machine virtuelle possède une adresse IP publique, sélectionnez Vue d’ensemble dans le menu de gauche et examinez la section Mise en réseau. Si vous voyez une adresse IP en regard de l’Adresse IP publique, votre machine virtuelle dispose d’une adresse IP publique. Pour en savoir plus sur l’ajout d’une adresse IP publique à une machine virtuelle existante, consultez Associer une adresse IP publique à une machine virtuelle
Vérifiez que votre machine virtuelle est en cours d’exécution. Sous l’onglet Vue d’ensemble, dans la section Essentials, vérifiez si la machine virtuelle a pour état Running (En cours d’exécution). Pour démarrer la machine virtuelle, sélectionnez Démarrer en haut de la page.
Authentification
Vous pouvez vous authentifier auprès des machines Windows avec le nom d’utilisateur et le mot de passe ou des clés SSH. Azure ne prend pas en charge le provisionnement automatique de clés publiques sur les machines Windows, vous pouvez néanmoins copier la clé avec l’extension RunCommand.
Vue d’ensemble de SSH et des clés
SSH est un protocole de connexion chiffré qui permet d’ouvrir des sessions sécurisées via des connexions non sécurisées. Bien que le protocole SSH offre une connexion chiffrée, l’utilisation de mots de passe avec des connexions SSH laisse néanmoins la machine virtuelle vulnérable aux attaques en force brute. Nous vous recommandons de vous connecter à une machine virtuelle via SSH à l’aide d’une paire de clés publique/privée, également appelées clés SSH.
La clé publique est placée sur votre machine virtuelle.
La clé privée reste sur votre système local. Protégez cette clé privée. Ne la partagez pas.
Quand vous utilisez un client SSH pour vous connecter à votre machine virtuelle (qui a la clé publique), la machine virtuelle distante teste le client pour vérifier qu’il a la bonne clé privée. Si le client a la clé privée, il est autorisé à accéder à la machine virtuelle.
Selon les stratégies de sécurité de votre organisation, vous pouvez réutiliser une paire de clés publique-privée unique pour accéder à plusieurs services et machines virtuelles Azure. Vous n’avez pas besoin d’une paire de clés distincte pour chaque machine virtuelle ou service auxquels vous souhaitez accéder.
Votre clé publique peut être partagée avec n’importe qui, mais vous seul (ou votre infrastructure de sécurité locale) devez avoir accès à votre clé privée.
Formats de clé SSH pris en charge
Azure prend actuellement en charge les principaux types de clé suivants :
- Protocole SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) d’une longueur minimale de 2 048 bits
- Clés ED25519 d’une longueur fixe de 256 bits
Les autres formats de clé, tels que Diffie-Hellman à courbe elliptique (ECDH) et l’algorithme ECDSA, ne sont actuellement pas pris en charge.
Copiez une clé publique avec l’extension RunCommand.
L’extension RunCommand fournit une solution simple pour copier une clé publique dans des machines Windows et s’assurer que le fichier dispose d’autorisations correctes.
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'"
Se connecter avec Az CLI
Connectez-vous aux machines Windows avec les commandes Az SSH
.
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername
Il est également possible de créer un tunnel réseau pour des ports TCP spécifiques au travers de la connexion SSH. Un bon cas d’usage est le Bureau à distance qui utilise par défaut le port 3389.
az ssh vm -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389
Se connecter à partir du portail Azure
- Accédez au Portail Azure pour vous connecter à une machine virtuelle. Recherchez et sélectionnez Machines virtuelles.
- Sélectionnez la machine virtuelle dans la liste.
- Sélectionnez Se connecter dans le menu de gauche.
- Choisissez l’option qui correspond à votre mode de connexion préféré. Le portail vous aide à parcourir les conditions préalables à la connexion.
Étapes suivantes
Découvrez comment transférer des fichiers vers une machine virtuelle existante. Pour cela, consultez Utiliser SCP pour déplacer des fichiers vers et depuis une machine virtuelle.