Herstellen einer Verbindung mit einer VM mithilfe von Bastion und einem nativen Linux-Client
Dieser Artikel unterstützt sie dabei, auf mithilfe des nativen Clients auf Ihrem Linux-Computer über Azure Bastion eine Verbindung mit einer VM in einem VNet herzustellen. Mit dem nativen Client können Sie über Bastion mithilfe der Azure CLI eine Verbindung mit Ihren Ziel-VMs herstellen und Ihre Anmeldeoptionen um ein lokales SSH-Schlüsselpaar und Microsoft Entra ID erweitern. Weitere Informationen und Schritte zum Konfigurieren von Bastion für native Clientverbindungen finden Sie unter Konfigurieren von Bastion für native Clientverbindungen. Für Verbindungen über einen nativen Client ist die Bastion Standard-SKU oder höher erforderlich.
Nachdem Sie Bastion für die native Clientunterstützung konfiguriert haben, können Sie mithilfe des nativen Linux-Clients eine Verbindung mit einer VM herstellen. Die Methode, die Sie zum Herstellen einer Verbindung verwenden, hängt sowohl vom Client als auch von der VM, mit der Sie eine Verbindung herstellen. Die folgende Liste zeigt einige der verfügbaren Möglichkeiten, um eine Verbindung über einen nativen Linux-Client herzustellen. Eine vollständige Liste mit verfügbaren Clientverbindungs-/Featurekombinationen finden Sie unter Herstellen einer Verbindung mit VMs.
- Stellen Sie eine Verbindung mit einem virtuellen Linux-Computer unter Verwendung von az network bastion ssh her.
- Stellen Sie eine Verbindung mit einer Windows-VM mithilfe des Befehls az network bastion tunnel her.
- Stellen Sie eine Verbindung mit einer VM mithilfe des Befehls az network bastion tunnel her.
- Laden Sie Dateien mithilfe des Befehls az network bastion tunnel über SSH auf Ihre Ziel-VM hoch. Derzeit wird der Download von Dateien von der Ziel-VM auf den lokalen Client für diesen Befehl nicht unterstützt.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie beginnen:
- Die neueste Version der CLI-Befehle (Version 2.32 oder höher) ist installiert. Sie können Ihre CLI für Bastion mit
az extension update --name bastion
aktualisieren. Informationen zum Installieren der CLI-Befehle finden Sie unter Installieren von Azure CLI 2.0 und Erste Schritte mit Azure CLI 2.0. - Azure Bastion ist bereits für Ihr virtuelles Netzwerk bereitgestellt und konfiguriert. Die Schritte finden Sie unter Konfigurieren von Bastion für native Clientverbindungen.
- Ein VM in einem virtuellen Netzwerk.
- Die Ressourcen-ID der VM: Die Ressourcen-ID kann problemlos im Azure-Portal abgefragt werden. Wechseln Sie zur Übersichtsseite Ihrer VM, und wählen Sie den Link JSON-Ansicht aus, um die Ressource „JSON“ zu öffnen. Kopieren Sie die Ressourcen-ID oben auf der Seite in die Zwischenablage, um sie später beim Herstellen einer Verbindung mit Ihrem virtuellen Computer zu verwenden.
- Wenn Sie sich mit Ihren Microsoft Entra-Anmeldeinformationen bei Ihrer VM anzumelden möchten, stellen Sie sicher, dass sie mit einer der folgenden Methoden eingerichtet ist:
Überprüfen Sie die Rollen und Ports
Stellen Sie sicher, dass die folgenden Rollen und Ports konfiguriert sind, um eine Verbindung mit der VM herzustellen.
Erforderliche Rollen
Rolle „Leser“ für den virtuellen Computer
Rolle „Leser“ für den Netzwerkadapter mit privater IP-Adresse des virtuellen Computers
Rolle „Leser“ für die Azure Bastion-Ressource
Rolle „VM-Administratoranmeldung“ oder „VM-Benutzeranmeldung“, wenn Sie die Microsoft Entra-Anmeldemethode verwenden. Sie müssen dies nur tun, wenn Sie die Anmeldung mit Microsoft Entra anhand einer der in den folgenden Artikeln beschriebenen Prozesse aktivieren:
Ports
Um eine Verbindung mit einer Linux-VM mit nativem Client-Support herzustellen, müssen auf Ihrer Linux-VM die folgenden Ports offen sein:
- Eingehender Port: SSH (22) oder
- Eingehender Port: Benutzerdefinierter Wert (Sie müssen diesen benutzerdefinierten Port angeben, wenn Sie über Azure Bastion eine Verbindung mit der VM herstellen)
Um eine Verbindung mit einer Windows-VM mit nativem Client-Support herzustellen, müssen auf Ihrer Windows-VM die folgenden Ports offen sein:
- Eingehender Port: RDP (3389) oder
- Eingehender Port: Benutzerdefinierter Wert (Sie müssen diesen benutzerdefinierten Port angeben, wenn Sie über Azure Bastion eine Verbindung mit der VM herstellen)
Informationen zur optimalen Konfiguration von NSGs mit Azure Bastion finden Sie unter Arbeiten mit NSG-Zugang und Azure Bastion.
Herstellen einer Verbindung mit einem virtuellen Linux-Computer
Durch Befolgen der Schritte in den folgenden Abschnitten können Sie mithilfe des Befehls az network bastion eine Verbindung mit einer Linux-VM von einem nativen Linux-Client herstellen. Diese Erweiterung kann durch das Ausführen von „az extension add --name bastion
“ installiert werden.
Wenn Sie mithilfe dieses Befehl eine Verbindung herstellen, werden Dateiübertragungen nicht unterstützt. Wenn Sie Dateien hochladen möchten, verwenden Sie stattdessen den Befehl az network bastion tunnel.
Dieser Befehl ermöglicht Ihnen Folgendes:
- Herstellen einer Verbindung mit einer Linux-VM über SSH.
- Authentifizierung über Microsoft Entra ID
- Herstellen einer Verbindung mit gleichzeitigen VM-Sitzungen innerhalb des virtuellen Netzwerks.
Nutzen Sie zum Anmelden eines der folgenden Beispiele. Nachdem Sie sich bei Ihrem virtuellen Zielcomputer angemeldet haben, öffnet sich der native Client auf Ihrem Computer mit Ihrer VM-Sitzung.
SSH-Schlüsselpaar
Wenn Sie sich mit einem SSH-Schlüsselpaar bei Ihrer VM anmelden möchten, verwenden Sie den im folgenden Beispiel angegebenen Befehl.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Microsoft Entra-Authentifizierung
Wenn Sie sich bei einer für die Microsoft Entra-Anmeldung eingerichteten VM anmelden, verwenden Sie das folgende Beispiel. Weitere Informationen finden Sie unter Linux-VMs in Azure und Microsoft Entra ID.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Benutzername/Kennwort
Wenn Sie sich mit einem lokalen Benutzernamen und Kennwort bei Ihrer VM anmelden, verwenden Sie das folgende Beispiel. Sie werden dann zur Eingabe des Kennworts für die Ziel-VM aufgefordert.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
SSH zu einer LINUX-VM-IP-Adresse
Anstatt die Ressourcen-ID zu verwenden, können Sie eine Verbindung mit einer privaten IP-Adresse des virtuellen Computers herstellen. Beachten Sie: Die Microsoft Entra-Authentifizierung sowie benutzerdefinierte Ports und Protokolle werden bei dieser Art von Verbindung nicht unterstützt. Weitere Informationen auf IP-Adressen basierenden Verbindungen finden Sie unter Herstellen der Verbindung mit einer VM über die angegebene private IP-Adresse.
Ersetzen Sie im Befehl az network bastion
die Angabe --target-resource-id
durch --target-ip-address
und die angegebene IP-Adresse, um eine Verbindung mit Ihrer VM herzustellen. Im folgenden Beispiel wird „--ssh-key“ als Authentifizierungsmethode verwendet.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Herstellen einer Verbindung mit einer VM– „Tunnel“-Befehl
Der Befehl az network bastion tunnel ist eine weitere Möglichkeit, eine Verbindung mit Ihren VMs herzustellen. Wenn Sie diesen Befehl verwenden, können Sie Folgendes tun:
- Stellen Sie eine Verbindung von nativen Clients auf lokalen Nicht-Windows-Computern her. (Ein Beispiel wäre ein Linux-Computer.)
- Stellen Sie mithilfe von SSH oder RDP eine Verbindung mit einer VM her. (Der Bastion-Tunnel leitet keine Webserver oder Hosts weiter.)
- Verwenden eines nativen Clients Ihrer Wahl
- Hochladen von Dateien von Ihrem lokalen Computer auf Ihren virtuellen Zielcomputer. Derzeit wird der Download von Dateien von der Ziel-VM auf den lokalen Client für diesen Befehl nicht unterstützt.
Einschränkungen:
- Die Anmeldung mit einem privaten SSH-Schlüssel, der in Azure Key Vault gespeichert ist, wird von diesem Feature nicht unterstützt. Laden Sie Ihren privaten Schlüssel in eine Datei auf Ihren lokalen Computer herunter, bevor Sie sich mithilfe eines SSH-Schlüsselpaars bei Ihrer Linux-VM anmelden.
- Dieses Feature wird in Cloud Shell nicht unterstützt.
Schritte:
Melden Sie sich mithilfe von „
az login
“ bei Ihrem Azure-Konto an. Wenn Sie über mehrere Abonnements verfügen, können Sie sie mithilfe von „az account list
“ anzeigen und dann mithilfe von „az account set --subscription "<subscription ID>"
“ das Abonnement auswählen, das Ihre Bastion-Ressource enthält.Öffnen Sie den Tunnel zu Ihrer Ziel-VM.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Stellen Sie mit SSH oder RDP, dem nativen Client Ihrer Wahl und dem Port des lokalen Computers, den Sie in vorherigen Schritt angegeben haben, eine Verbindung zu Ihrem virtuellen Zielcomputer her.
Sie können z. B. den folgenden Befehl verwenden, wenn der OpenSSH-Client auf Ihrem lokalen Computer installiert ist:
ssh <username>@127.0.0.1 -p <LocalMachinePort>
Tunnel zu einer VM-IP-Adresse
Anstatt die Ressourcen-ID zu verwenden, können Sie eine Verbindung mit einer privaten VM-IP-Adresse herstellen. Microsoft Entra-Authentifizierung sowie benutzerdefinierte Ports und Protokolle werden bei dieser Art von Verbindung nicht unterstützt. Weitere Informationen auf IP-Adressen basierenden Verbindungen finden Sie unter Herstellen der Verbindung mit einer VM über die angegebene private IP-Adresse.
Ersetzen Sie im Befehl az network bastion tunnel
die Angabe --target-resource-id
durch --target-ip-address
und die angegebene IP-Adresse, um eine Verbindung mit Ihrer VM herzustellen.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Tunnel mit mehreren Verbindungen
Fügen Sie Ihrer Datei „$HOME.ssh\config“ Folgendes hinzu.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
Fügen Sie die Tunnelverbindung zu Ihrer eingerichteten Tunnelverbindung hinzu.
az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
Erstellen Sie einen SSH-Tunnel im Bastion-Tunnel.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Verwenden Sie VS Code, um eine Verbindung mit Ihrer Tunnelverbindung herzustellen.