KVM

SSH von lokaler Maschine zu virtuell über KVM und CentOS 8 Guest

SSH von lokaler Maschine zu virtuell über KVM und CentOS 8 Guest
Standardmäßig verwenden virtuelle KVM-Maschinen private NAT-Netzwerke, auf die nur vom KVM-Host aus zugegriffen werden kann. Sie können also nicht von Ihrem Heimnetzwerk auf die virtuellen KVM-Maschinen zugreifen. Um eine SSH-Verbindung zu virtuellen Maschinen herzustellen, die auf Ihrem KVM-Host ausgeführt werden, gibt es zwei Methoden: SSH-Tunneling und Konfiguration einer öffentlichen KVM-Netzwerkbrücke. Dieser Artikel zeigt Ihnen, wie Sie von Ihrem Heimnetzwerk über SSH-Tunneling und mithilfe einer öffentlichen KVM-Netzwerkbrücke eine SSH-Verbindung zu einer virtuellen KVM CentOS 8-Maschine herstellen.

Voraussetzungen

Um die Beispiele in diesem Artikel auszuprobieren, muss KVM auf Ihrem Computer installiert sein. Wenn Sie KVM nicht auf Ihrem Computer installiert haben, können Sie die folgenden Artikel unter LinuxHint . lesen.com für Hilfe bei der Installation von KVM auf Ihrer gewünschten Linux-Distribution.

- KVM auf Ubuntu 20 . installieren.04

- KVM auf CentOS 8 . installieren

Erstellen einer virtuellen CentOS 8 KVM-Maschine

In diesem Abschnitt erfahren Sie, wie Sie eine virtuelle CentOS 8 KVM-Maschine zum Testen der SSH-Konnektivität erstellen.

Laden Sie zuerst das CentOS 8 ISO-Installationsabbild herunter. Um alle Dateien/Daten der virtuellen Maschine organisiert zu halten, ist es eine gute Idee, das ISO-Image im /kvm/iso/ Verzeichnis.

Navigieren Sie zum /kvm/iso/ Verzeichnis mit folgendem Befehl:

$ cd /kvm/iso

Den Link zum CentOS 8 ISO-Installationsimage finden Sie auf der offiziellen ISO-Website von CentOS.

Sobald die Seite geladen ist, klicken Sie auf Ihren nächsten CentOS 8-Spiegel.

Alle verfügbaren CentOS 8 ISO-Installationsimages sollten aufgelistet sein.

Ich werde das NetBoot ISO-Installationsabbild von CentOS 8 für diesen Artikel herunterladen. Um CentOS 8 auf einer virtuellen KVM-Maschine mit dem NetBoot ISO-Installationsimage zu installieren, benötigt die virtuelle Maschine eine Internetverbindung.

Wenn Sie das Netzwerk während der Installation von CentOS 8 auf der virtuellen Maschine nicht konfigurieren möchten, wählen Sie entweder die minimal oder der DVD ISO-Installationsabbild von CentOS 8.

Klicken Sie mit der rechten Maustaste (RMB) auf die ISO-Datei, um den Link der ISO-Datei herunterzuladen und zu kopieren.

Laden Sie das CentOS 8 ISO-Installationsabbild mit . herunter wget, wie folgt:

$ sudo wget http://mirror.dhakacom.com/centos/
8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso

wget sollte mit dem Herunterladen des CentOS 8 ISO-Image beginnen. Es wird eine Weile dauern, bis es fertig ist.

An dieser Stelle sollte das CentOS 8 ISO-Image heruntergeladen werden.

Das CentOS 8 ISO-Image ist im /kvm/iso/ Verzeichnis, wie Sie im Screenshot unten sehen können.

$ ls -lh

Nachdem das CentOS-ISO-Image heruntergeladen wurde, erstellen Sie eine virtuelle KVM-Maschine mit dem folgenden Befehl:

$ sudo virt-install --name centos8-01 \
--os-typ linux \
--os-Variante centos8 \
--Widder 2048 \
--Datenträger /kvm/disk/centos8-01.img,device=disk,bus=virtio,size=10,format=qcow2 \
--Grafik vnc,listen=0.0.0.0 \
--keineautokonsole \
--hvm \
--cdrom /kvm/iso/CentOS-8.2.2004-x86_64-boot.iso \
--boot cdrom, hdh

Der Name der virtuellen Maschine lautet centos8-01.

Der Betriebssystemtyp ist Linux und die Variante ist Centos8.

Der Arbeitsspeicher (Random Access Memory) der VM beträgt 2048 MB oder 2 GB.

Die virtuelle Festplatte der VM wird im /kvm/disk/centos8-01.img Datei. Die virtuelle Festplatte ist ungefähr 10 GB in Größe und Format ist QCOW2 (QEMU Copy-On-Write v2).

Auf die virtuelle Maschine kann über das VNC (Virtual Network Computing) Remote-Desktop-Protokoll zugegriffen werden, und der VNC-Server lauscht auf allen verfügbaren Netzwerkschnittstellen, die auf Ihrem KVM-Host konfiguriert sind.

Der KVM-Host versucht nicht automatisch, sich mit der virtuellen Maschine zu verbinden, sobald die virtuelle Maschine erstellt wurde. Die virtuelle Maschine läuft im Hintergrund weiter.

Nutzen Sie die vollständige Virtualisierung für die virtuelle Maschine. Dadurch wird die Leistung virtueller Maschinen besser.

Verwenden Sie das zuvor heruntergeladene CentOS 8-ISO-Image als virtuelle CD/DVD-ROM der virtuellen Maschine. Dies wird für die Installation von CentOS 8 auf der virtuellen Maschine verwendet.

Legt die Bootreihenfolge der virtuellen Maschine fest. Der erste Boot-Eintrag ist die virtuelle CD/DVD-ROM und dann die virtuelle Festplatte. Die virtuelle Maschine kann also vom CentOS 8-ISO-Image booten und CentOS 8 auf der Festplatte installieren.

Das sind alle Optionen, die Sie brauchen, um eine virtuelle KVM-Maschine zu erstellen.

Sobald Sie die virt-install Befehl sollte KVM mit der Erstellung der virtuellen Maschine beginnen. Dies kann je nach Konfiguration Ihrer virtuellen Maschine eine Weile dauern.

An dieser Stelle sollte die virtuelle KVM-Maschine erstellt werden.

Wie Sie sehen, ist die neu erstellte virtuelle Maschine centos8-01 läuft.

Jetzt können Sie sich mit einem beliebigen VNC-Client-Programm mit der virtuellen Maschine verbinden und CentOS 8 darauf installieren. Um sich über VNC mit der virtuellen Maschine zu verbinden, müssen Sie die VNC-Portnummer der virtuellen Maschine kennen.

So finden Sie die VNC-Portnummer der virtuellen KVM-Maschine centos8-01, führen Sie den folgenden Befehl aus:

$ virsh vncdisplay centos8-01

Wie Sie sehen, ist die VNC-Portnummer des centos8-01 virtuelle Maschine ist 1.

Hier, Port 0 bedeutet Hafen 5900. Auf die gleiche Weise port 1 bedeutet Hafen 5901, und so weiter.

Wie Sie sehen, ist die virtuelle KVM-Maschine centos8-01 läuft auf port 5901 (:1).

$ sudo netstat -tln

Wenn auf Ihrem KVM-Host das Betriebssystem CentOS 8 ausgeführt wird, können Sie den Zugriff auf Port zulassen 5901 mit folgendem Befehl:

$ sudo Firewall-cmd --add-port=5901/tcp --permanent

Führen Sie den folgenden Befehl aus, damit die Firewall-Änderungen wirksam werden:

$ sudo Firewall-cmd --reload

Wenn auf Ihrem KVM-Host Ubuntu 20 ausgeführt wird.04 LTS-Betriebssystem können Sie den Zugriff auf Port zulassen 5901 mit folgendem Befehl:

$ sudo ufw erlauben 5901/tcp

Führen Sie den folgenden Befehl aus, damit die Firewall-Änderungen wirksam werden:

$ sudo ufw reload

Finden Sie die IP-Adresse Ihres KVM-Hosts mit dem folgenden Befehl:

$ Hostname -I | tr " " "\n"

Mein Heimnetzwerk verwendet das Netzwerk-Subnetz 192.168.20.0/24. Die IP-Adresse meines KVM-Hosts lautet also 192.168.20.131. Die anderen IP-Adressen sind private Netzwerkbrücken des KVM-Hosts.

Öffnen Sie ein beliebiges VNC-Client-Programm und verbinden Sie sich mit der Adresse 192.168.20.131:1.

Sie sollten das CentOS 8-Installationsfenster sehen, wie im Screenshot unten gezeigt. Sie können CentOS 8 wie gewohnt auf der virtuellen KVM-Maschine installieren.

Ich installiere die minimale Serverversion von CentOS 8 für die Demonstration in diesem Artikel.

CentOS 8 wird in der virtuellen KVM-Maschine installiert centos8-01, wie Sie im Screenshot unten sehen können. Dies kann eine Weile dauern.

Sobald CentOS 8 auf der virtuellen Maschine installiert ist, klicken Sie auf Neustart.

Die virtuelle KVM-Maschine centos8-01 sollte automatisch ausgeschaltet werden, wie Sie im Screenshot unten sehen können.

$ sudo virsh list --all

Starte das centos8-01 KVM virtuelle Maschine mit dem folgenden Befehl:

$ virsh starten centos8-01

Jetzt können Sie eine Verbindung zum centos8-01 virtuelle Maschine von einem VNC-Client, wie zuvor. Wie Sie sehen können, läuft der CentOS 8-Minimalserver in der virtuellen KVM-Maschine einwandfrei.

Installieren des SSH-Servers auf der virtuellen CentOS 8-Maschine

Das Hauptziel dieses Artikels ist die Verbindung mit einer virtuellen CentOS 8 KVM-Maschine über SSH. Auf Ihrer virtuellen CentOS 8 KVM-Maschine muss ein SSH-Server installiert sein, um eine Verbindung über SSH herstellen zu können.

Installieren Sie den OpenSSH-Server auf Ihrer virtuellen CentOS 8 KVM-Maschine mit dem folgenden Befehl:

$ sudo dnf install openssh-server -y

Der OpenSSH-Server sollte jetzt installiert sein. In meinem Fall ist es bereits installiert.

Bestätigen Sie, dass die sshd Dienst ist Laufen und aktiviert mit folgendem Befehl:

$ sudo systemctl status sshd

Wenn die sshd Dienst nicht ausgeführt wird, können Sie ihn mit dem folgenden Befehl starten:

$ sudo systemctl start sshd

Wenn die sshd Dienst deaktiviert ist, können Sie ihn mit dem folgenden Befehl aktivieren:

$ sudo systemctl sshd aktivieren

Konfigurieren der Firewall der virtuellen CentOS 8-Maschine

Sie müssen die Firewall der virtuellen Maschine konfigurieren, um den Zugriff auf den SSH-Port zuzulassen. Andernfalls können Sie sich nicht über SSH mit der virtuellen Maschine verbinden, auch wenn alle Konfigurationen in Ordnung sind.

So erlauben Sie den SSH-Zugriff auf die virtuelle KVM-Maschine centos8-01, führen Sie den folgenden Befehl aus:

$ sudo Firewall-cmd --add-service=ssh --permanent

Führen Sie den folgenden Befehl aus, damit die Firewall-Änderungen wirksam werden:

$ sudo Firewall-cmd --reload

Methode 1: Zugriff auf virtuelle Maschinen über SSH-Tunneling

KVM verwendet standardmäßig die private Netzwerkbrücke Standard zur Vernetzung der virtuellen Maschinen. Das IP-Adress-Subnetz der privaten KVM-Netzwerkbrücke Standard ist aus einem Heimnetzwerk nicht erreichbar. Es ist nur von einem KVM-Host aus zugänglich. Um also von einem anderen Computer (in Ihrem Heimnetzwerk) eine SSH-Verbindung zu Ihrer virtuellen CentOS 8 KVM-Maschine herzustellen, müssen Sie die Verbindung über einen KVM-Host umgehen. Dies wird als SSH-Tunneling bezeichnet und funktioniert ähnlich wie ein VPN.

Damit SSH-Tunneling funktioniert, muss auf Ihrem KVM-Host ein SSH-Server installiert sein und Sie müssen über SSH-Zugriff auf den KVM-Host verfügen.

Wenn auf Ihrem KVM-Host CentOS 8 ausgeführt wird, können Sie den OpenSSH-Server mit dem folgenden Befehl auf Ihrem KVM-Host installieren:

$ sudo dnf install openssh-server -y

Wenn auf Ihrem KVM-Host Ubuntu 20 ausgeführt wird.04 LTS, dann können Sie den OpenSSH-Server mit folgendem Befehl auf Ihrem KVM-Host installieren:

$ sudo apt install openssh-server -y

Bestätigen Sie, dass die sshd Dienst ist Laufen und aktiviert mit folgendem Befehl:

$ sudo systemctl status sshd

Wenn die sshd Dienst nicht ausgeführt wird, können Sie ihn mit dem folgenden Befehl starten:

$ sudo systemctl start sshd

Wenn die sshd Dienst deaktiviert ist, können Sie ihn mit dem folgenden Befehl aktivieren:

$ sudo systemctl sshd aktivieren

Möglicherweise müssen Sie die Firewall Ihres KVM-Hosts konfigurieren, um SSH-Zugriff darauf zuzulassen.

Wenn Ihr KVM-Host das Betriebssystem CentOS 8 verwendet, führen Sie den folgenden Befehl aus, um die Firewall zu konfigurieren:

$ sudo Firewall-cmd --add-service=ssh --permanent

Führen Sie den folgenden Befehl aus, damit die Änderungen wirksam werden:

$ sudo Firewall-cmd --reload

Wenn Ihr KVM-Host Ubuntu 20 verwendet.04 LTS-Betriebssystem, führen Sie den folgenden Befehl aus, um die Firewall zu konfigurieren:

$ sudo ufw erlauben ssh

Führen Sie den folgenden Befehl aus, damit die Änderungen wirksam werden:

$ sudo ufw reload

Ihre virtuelle CentOS 8 KVM-Maschine centos8-01 kann ausgeschaltet sein.

$ sudo virsh list --all

In diesem Fall können Sie die virtuelle Maschine mit folgendem Befehl starten:

$ sudo virsh start centos8-01

Stellen Sie mit einem VNC-Client eine Verbindung zu Ihrer virtuellen CentOS 8-Maschine her und führen Sie den folgenden Befehl auf der virtuellen Maschine aus, um ihre private IP-Adresse zu ermitteln:

$ Hostname -I

In meinem Fall lautet die private IP-Adresse meiner virtuellen CentOS 8 KVM-Maschine 192.168.122.89. Das kann bei dir anders sein.

Finden Sie die IP-Adresse Ihres KVM-Hosts mit dem folgenden Befehl:

$ Hostname -I | tr " " "\n"

In meinem Fall lautet die IP-Adresse 192.168.20.131. Ich weiß das, weil mein Heimnetzwerk das Subnetz verwendet 192.168.20.0/24.

Um über den KVM-Host einen Tunnel zur virtuellen CentOS 8 KVM-Maschine zu erstellen, führen Sie den folgenden Befehl auf Ihrem Computer aus:

$ ssh -L 2200:192.168.122.89:22 [email protected]

Hier die -L Option wird verwendet, um SSH anzuweisen, eine lokale Portweiterleitung durchzuführen.

Dadurch werden alle Anfragen weitergeleitet, die von der localhost Hafen 2200 zum Hafen 22 der virtuellen CentOS 8 KVM-Maschine, die die private IP-Adresse hat 192.168.122.89.

Da der Computer keinen direkten Zugriff auf das Netzwerk-Subnetz der virtuellen CentOS 8 KVM-Maschine hat 192.168.122.0/24, es tunnelt die Anfrage durch den KVM-Host, der direkten Zugriff auf dieses Netzwerk-Subnetz hat.

Hier, 192.168.20.131 ist die IP-Adresse des KVM-Hosts und shovon ist der SSH-Login-Benutzername des KVM-Hosts.

Nachdem Sie den Befehl ausgeführt haben, wird Ihnen möglicherweise die folgende Frage gestellt:. Art Ja und drücke .

Geben Sie das Passwort des Login-Benutzers Ihres KVM-Hosts ein und drücken Sie .

Sie sollten nun über SSH mit dem KVM-Host verbunden sein.

Jetzt können Sie eine SSH-Verbindung zu Ihrer virtuellen CentOS 8 KVM-Maschine auf dem localhost Hafen 2200 wie folgt:

$ ssh shovon@localhost -p 2200

Hier, shovon ist der Login-Benutzername der virtuellen CentOS 8 KVM-Maschine.

Nachdem Sie den Befehl ausgeführt haben, wird Ihnen möglicherweise die folgende Frage gestellt:. Art Ja und drücke .

Geben Sie das Passwort des Anmeldebenutzers Ihrer virtuellen CentOS 8 KVM-Maschine ein und drücken Sie .

Sie sollten nun über SSH mit der virtuellen CentOS 8 KVM-Maschine verbunden sein, die auf Ihrem KVM-Host läuft, wie Sie im Screenshot unten sehen können.

Sie können auch hier jeden beliebigen Befehl ausführen.

Methode 2: Zugriff auf virtuelle Maschinen über KVM Public Network Bridge

Wenn Sie vollen Zugriff auf Ihre virtuelle CentOS 8 KVM-Maschine wünschen, können Sie eine öffentliche KVM-Netzwerkbrücke konfigurieren. Eine öffentliche KVM-Netzwerkbrücke fungiert als Netzwerk-Switch. Ihre virtuelle CentOS 8 KVM-Maschine erhält eine IP-Adresse von demselben DHCP-Server wie Ihr Heimnetzwerk und im selben Netzwerk ein Subnetz wie Ihr Heimnetzwerk. So ist es von jedem Gerät aus zugänglich, das mit Ihrem Heimnetzwerk verbunden ist.

Ich habe bereits eine öffentliche KVM-Netzwerkbrücke erstellt Öffentlichkeit und konfigurierte meine virtuelle CentOS 8 KVM-Maschine für die Verwendung der Bridge use. Ich erkläre den Prozess der Erstellung der KVM Public Network Bridge in meinem Artikel So erstellen Sie eine CentOS 8 KVM Networked Bridge-Schnittstelle. Schau es dir unbedingt an.

Nachdem Sie eine öffentliche KVM-Netzwerkbrücke erstellt haben, müssen Sie Ihre virtuelle CentOS 8-Maschine für die Verwendung der Brücke konfigurieren. Vor der Konfiguration Ihrer virtuellen CentOS 8-Maschine centos8-01, Überprüfen Sie mit dem folgenden Befehl, ob die virtuelle CentOS 8 KVM-Maschine ausgeführt wird:

$ sudo virsh list -all

Wie Sie sehen können, ist die virtuelle CentOS 8 KVM-Maschine centos8-01 läuft. Wir sollten es stoppen, bevor wir es konfigurieren.

Sie können Ihre virtuelle CentOS 8 KVM-Maschine ausschalten centos8-01 mit folgendem Befehl:

$ sudo virsh herunterfahren centos8-01

Wie Sie sehen, ist die virtuelle CentOS 8 KVM-Maschine ausgeschaltet.

$ sudo virsh list --all

Standardmäßig verwendet die virtuelle CentOS 8 KVM-Maschine die Standard private Netzwerkbrücke. Ich werde es so konfigurieren, dass es verwendet wird Öffentlichkeit Netzwerkbrücke habe ich bereits erstellt.

$ sudo virsh net-list --all

Führen Sie den folgenden Befehl aus, um die Konfiguration der virtuellen CentOS 8 KVM-Maschine zu bearbeiten:

$ sudo virsh bearbeiten centos8-01

Finden Sie die Schnittstelle Abschnitt, wie im Screenshot unten markiert. Ändere das Quelle Netzwerk von Standard zu Öffentlichkeit.

HINWEIS: Die Konfigurationsdatei wird standardmäßig mit dem Vi-Texteditor geöffnet. Um die Konfigurationsdatei in Vi zu bearbeiten, drücken Sie ich zu gehen EINFÜGEN Modus. Um die Konfigurationsdatei zu speichern, drücken Sie , eintippen :wq!, und drücke dann .

Die Konfiguration der virtuellen Maschine sollte nun geändert werden.

Starten Sie die virtuelle CentOS 8 KVM-Maschine mit dem folgenden Befehl:

$ sudo virsh start centos8-01

Stellen Sie nun über einen VNC-Client eine Verbindung zu Ihrer virtuellen CentOS 8 KVM-Maschine her. Überprüfen Sie die IP-Adresse der virtuellen Maschine mit dem folgenden Befehl:

$ Hostname -I

Wie Sie sehen, lautet die IP-Adresse address 192.168.20.133. Diese IP-Adresse wurde vom DHCP-Server meines Heimnetzwerks geliefert. Dies ist eine IP-Adresse des Netzwerk-Subnetzes 192.168.20.0/24, das ist das Subnetz meines Heimnetzwerks.

Jetzt können Sie sich von jedem Computer, der mit Ihrem Heimnetzwerk verbunden ist, wie folgt mit der virtuellen CentOS 8 KVM-Maschine verbinden:

$ ssh [email protected]

Hier, shovon ist der Login-Benutzername der virtuellen CentOS 8 KVM-Maschine.

Nachdem Sie den Befehl ausgeführt haben, wird Ihnen möglicherweise die folgende Frage gestellt:. Art Ja und drücke .

Geben Sie das Passwort des Anmeldebenutzers Ihrer virtuellen CentOS 8 KVM-Maschine ein und drücken Sie .

Sie sollten nun über SSH mit der virtuellen CentOS 8 KVM-Maschine verbunden sein, die auf Ihrem KVM-Host läuft, wie Sie im Screenshot unten sehen können.

Sie können auch hier jeden beliebigen Befehl ausführen.

Fazit

In diesem Artikel wurde gezeigt, wie Sie eine virtuelle KVM CentOS 8-Maschine erstellen und über SSH eine Verbindung zur virtuellen Maschine herstellen. Wenn die virtuelle KVM-Maschine von CentOS 8 nicht über das Heimnetzwerk zugänglich ist (sie verwendet eine private Netzwerkbrücke), müssen Sie SSH-Tunneling verwenden, um eine Verbindung mit der virtuellen KVM-Maschine über SSH . herzustellen. Wenn Sie vollen Zugriff auf die virtuelle CentOS 8 KVM-Maschine wünschen, können Sie eine öffentliche Netzwerkbrücke einrichten und die virtuelle Maschine für die Verwendung der Brücke konfigurieren. Auf diese Weise kann von Ihrem gesamten Heimnetzwerk auf Ihre virtuelle KVM-Maschine zugegriffen werden.

Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...