Übung: Herstellen einer Verbindung mit einem virtuellen Linux-Computer mit SSH

Abgeschlossen

Stellen wir eine Verbindung mit dem virtuellen Linux-Computer mit SSH her, und konfigurieren wir Apache, damit wir über einen Webserver verfügen, der ausgeführt wird.

Abrufen der öffentlichen IP-Adresse des virtuellen Computers

  1. Klicken Sie im Azure-Portal, das Sie in der vorherigen Übung geöffnet haben, auf Zu Ressource wechseln. Daraufhin wird der Bereich Übersicht der soeben erstellten VM angezeigt. Alternativ finden Sie die VM unter Alle Ressourcen, wenn Sie sie öffnen müssen. Der Bereich „Übersicht“ bietet folgende Möglichkeiten:

    • Überprüfen, ob der virtuelle Computer ausgeführt wird
    • Beenden oder Neustarten des virtuellen Computers
    • Abrufen der öffentlichen IP-Adresse des virtuellen Computers
    • Anzeigen der Aktivität von CPU, Datenträger und Netzwerk
  2. Klicken Sie oben im Bereich auf Verbinden>SSH.

  3. Kopieren Sie in Schritt 4 den Befehl in die Zwischenablage.

    Screenshot des Azure-Portals mit dem Bereich „Connect to a virtual machine“ (Verbindung mit virtuellem Computer herstellen), der zum Herstellen einer SSH-Verbindung mit der neu erstellten Linux-VM konfiguriert ist.

  4. Beim Erstellen des SSH-Schlüsselpaars wurde der Dateipfad des standardmäßigen SSH-Schlüssels verwendet. Sie müssen den Pfad des privaten Schlüsseln nicht im Befehl angeben, indem Sie das Flag -i mit dem Pfad für den privaten Schlüssel verwenden. Wenn Sie beim Erstellen des SSH-Schlüsselpaars einen anderen Pfad eingegeben haben, müssen Sie diesen Pfad zum Befehl hinzufügen.

Verbinden mit SSH

  1. Fügen Sie den Befehl aus der Zwischenablage in Azure Cloud Shell ein. Löschen Sie das -i-Flag sowie den Platzhalter für den Pfad des privaten Schlüssels, und führen Sie den Befehl aus. Dies sollte dem folgenden Beispiel mit einer anderen IP-Adresse und einem anderen Benutzernamen ähneln.

    ssh azureuser@13.68.150.164
    
  2. Bei der ersten Verbindungsherstellung macht uns das SSH-Tool auf die Authentifizierung bei einem unbekannten Host aufmerksam. SSH informiert Sie darüber, dass Sie bisher noch keine Verbindung mit diesem Server hergestellt haben. Ist dies der Fall, ist alles in Ordnung, und Sie können mit yes (Ja) antworten, um den Fingerabdruck des Servers in der Datei mit den bekannten Hosts zu speichern.

    The authenticity of host '137.117.101.249 (137.117.101.249)' can't be established.
    ECDSA key fingerprint is SHA256:w1h08h4ie1iMq7ibIVSQM/PhcXFV7O7EEhjEqhPYMWY.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '137.117.101.249' (ECDSA) to the list of known hosts.
    
  3. Geben Sie die Passphrase ein, die Sie beim Erstellen des SSH-Schlüsselpaars festgelegt haben.

  4. Versuchen Sie, ein paar Linux-Befehle in der Shell-Eingabeaufforderung auszuführen:

    • ls -la /: Stamm des Datenträgers anzeigen
    • ps -l: Alle laufenden Prozesse anzeigen
    • dmesg: Alle Kernelmeldungen auflisten
    • lsblk: Alle Blockgeräte auflisten – Hier werden Ihre Laufwerke angezeigt

    Interessanter ist das, was in der Liste der Laufwerke fehlt. Beachten Sie, dass unser Datenlaufwerk (sdc) zwar vorhanden, nicht aber im Dateisystem bereitgestellt ist. Azure hat eine VHD hinzugefügt, aber nicht initialisiert.

Initialisieren von Datenträgern

Alle zusätzlichen Laufwerke, die Sie neu erstellen, müssen initialisiert und formatiert werden. Der Prozess für die Initialisierung ist der gleiche wie bei einem physischen Datenträger.

  1. Identifizieren Sie zunächst den soeben erstellten Datenträger. Sie können auch dmesg | grep SCSI verwenden, um alle Nachrichten aus dem Kernel für SCSI-Geräte aufzulisten.

  2. Sobald Sie wissen, welches Laufwerk (sdc) Sie initialisieren müssen, können Sie hierzu fdisk verwenden. Sie müssen den Befehl mit sudo ausführen und den Datenträger angeben, den Sie partitionieren möchten. Sie können den folgenden Befehl verwenden, um eine neue primäre Partition zu erstellen.

    (echo n; echo p; echo 1; echo ; echo ; echo w) | sudo fdisk /dev/sdc
    
  3. Im nächsten Schritt schreiben Sie jetzt mit dem Befehl mkfs ein Dateisystem auf die Partition.

    sudo mkfs -t ext4 /dev/sdc1
    
  4. Abschließend müssen wir das Laufwerk im Dateisystem bereitstellen. Angenommen, es ist ein Ordner data vorhanden. Wir erstellen den Bereitstellungspunktordner und stellen das Laufwerk bereit.

    sudo mkdir /data && sudo mount /dev/sdc1 /data
    

Hiermit haben Sie den Datenträger initialisiert und eingebunden. Weitere Informationen zu diesem Prozess finden Sie im Modul Hinzufügen und Dimensionieren von Datenträgern in virtuellen Azure-Computern. Darin wird diese Aufgabe ausführlicher behandelt.

Installieren von Software auf dem virtuellen Computer

Wie Sie sehen, ermöglicht SSH Ihnen die Arbeit mit der Linux-VM wie mit einem lokalen Computer. Sie können diesen virtuellen Computer wie jeden anderen Linux-Computer verwalten: Software installieren, Rollen konfigurieren, Features anpassen und andere alltägliche Aufgaben durchführen. Wir beschäftigen uns hier erst einmal mit dem Installieren der Software.

Sie können auch Software aus dem Internet installieren, wenn Sie mit dem virtuellen Computer über SSH verbunden sind. Azure-Computer sind standardmäßig mit dem Internet verbunden. Sie können die Standardbefehle verwenden, um beliebte Softwarepakete direkt aus Standardrepositorys zu installieren. Wir verwenden diesen Ansatz hier zum Installieren von Apache.

Installieren des Apache-Webservers

Apache ist in den Standardsoftwarerepositorys von Ubuntu verfügbar. Daher erfolgt die Installation mit herkömmlichen Paketverwaltungstools:

  1. Starten Sie, indem Sie den lokalen Paketindex aktualisieren, um die neuesten Upstreamänderungen widerzuspiegeln.

    sudo apt-get update
    
  2. Installieren Sie im nächsten Schritt Apache.

    sudo apt-get install apache2 -y
    
  3. Der Start sollte automatisch erfolgen. Sie können den Status mit systemctl überprüfen.

    sudo systemctl status apache2 --no-pager
    

    Der Befehl systemctl gibt eine Ausgabe zurück, die der folgenden ähnelt.

    apache2.service - The Apache HTTP Server
       Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: active (running) since Mon 2018-09-03 21:00:03 UTC; 1min 34s ago
     Main PID: 11156 (apache2)
        Tasks: 55 (limit: 4915)
       CGroup: /system.slice/apache2.service
               ├─11156 /usr/sbin/apache2 -k start
               ├─11158 /usr/sbin/apache2 -k start
               └─11159 /usr/sbin/apache2 -k start
    
    test-web-eus-vm1 systemd[1]: Starting The Apache HTTP Server...
    test-web-eus-vm1 apachectl[11129]: AH00558: apache2: Could not reliably determine the server's fully qua
    test-web-eus-vm1 systemd[1]: Started The Apache HTTP Server.
    
  4. Abschließend können wir versuchen, die Standardseite über die öffentliche IP-Adresse abzurufen. Aber obwohl der Webserver auf der VM ausgeführt wird, erhalten Sie keine gültige Verbindung oder Antwort. Kennen Sie den Grund?

Wir müssen einen weiteren Schritt ausführen, um mit dem Webserver interagieren zu können. Unser virtuelles Netzwerk blockiert die eingehende Anforderung. Wir können dies über die Konfiguration ändern. Sehen wir uns nun an, wie die eingehende Anforderung zugelassen wird.