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 erforderlich.

Diagram shows a connection via native client.

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:

Ü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:

  1. 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.

  2. Ö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>"
    
  3. 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

  1. 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
    
  2. 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
    
  3. Erstellen Sie einen SSH-Tunnel im Bastion-Tunnel.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Verwenden Sie VS Code, um eine Verbindung mit Ihrer Tunnelverbindung herzustellen.

Nächste Schritte

Hochladen oder Herunterladen von Dateien