KVM

SSH van lokale machine naar virtueel via KVM en CentOS 8 Guest

SSH van lokale machine naar virtueel via KVM en CentOS 8 Guest
Standaard gebruiken virtuele KVM-machines privé NAT-netwerken, die alleen toegankelijk zijn vanaf de KVM-host. U heeft dus geen toegang tot de virtuele KVM-machines vanuit uw thuisnetwerk. Om SSH naar virtuele machines te sturen die op uw KVM-host draaien, zijn er twee methoden om dit te doen: SSH-tunneling en het configureren van een openbare KVM-netwerkbrug. Dit artikel laat zien hoe u SSH naar een KVM CentOS 8 virtuele machine kunt sturen vanuit uw thuisnetwerk via SSH-tunneling en met behulp van een openbare KVM-netwerkbrug.

Vereisten

Om de voorbeelden in dit artikel uit te proberen, moet KVM op uw computer zijn geïnstalleerd. Als je KVM niet op je computer hebt geïnstalleerd, kun je de volgende artikelen lezen op LinuxHint.com voor hulp bij het installeren van KVM op uw gewenste Linux-distributie.

- Installeer KVM op Ubuntu 20.04

- Installeer KVM op CentOS 8

Een CentOS 8 KVM virtuele machine maken

In dit gedeelte wordt uitgelegd hoe u een virtuele CentOS 8 KVM-machine maakt voor het testen van SSH-connectiviteit.

Download eerst de CentOS 8 ISO-installatie-image. Om alle bestanden/gegevens van de virtuele machine georganiseerd te houden, is het een goed idee om de ISO-image op te slaan in de /kvm/iso/ map.

Navigeer naar de /kvm/iso/ map met het volgende commando:

$ cd /kvm/iso

Je kunt de link naar de CentOS 8 ISO-installatie-image vinden op de officiële ISO-website van CentOS.

Zodra de pagina is geladen, klikt u op uw dichtstbijzijnde CentOS 8-mirror.

Alle beschikbare CentOS 8 ISO-installatie-images moeten worden vermeld.

Ik zal de NetBoot ISO-installatie-image van CentOS 8 downloaden voor dit artikel. Om CentOS 8 op een virtuele KVM-machine te installeren met behulp van de NetBoot ISO-installatie-image, heeft de virtuele machine een internetverbinding nodig.

Als u het netwerk niet wilt configureren terwijl u CentOS 8 op de virtuele machine installeert, selecteert u de minimaal of de DVD ISO-installatie-image van CentOS 8.

Klik met de rechtermuisknop (RMB) op het ISO-bestand om de link van het ISO-bestand te downloaden en te kopiëren.

Download de CentOS 8 ISO-installatiekopie met behulp van wget, als volgt:

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

wget zou moeten beginnen met het downloaden van de CentOS 8 ISO-image. Het duurt even voordat het klaar is.

Op dit punt moet de CentOS 8 ISO-image worden gedownload.

De CentOS 8 ISO-image is beschikbaar in de: /kvm/iso/ map, zoals je kunt zien in de onderstaande schermafbeelding.

$ ls -lh

Nadat de CentOS ISO-image is gedownload, maakt u een virtuele KVM-machine met de volgende opdracht:

$ sudo virt-install --name centos8-01 \
--os-type linux \
--os-variant centos8 \
--ram 2048 \
--schijf /kvm/disk/centos8-01.img,apparaat=schijf,bus=virtio,grootte=10,format=qcow2 \
--graphics vnc,luister=0.0.0.0 \
--geenautoconsole \
--hvm \
--cdrom /kvm/iso/CentOS-8.2.2004-x86_64-boot.iso \
--opstart cd-rom, hd,

De naam van de virtuele machine wordt centos8-01.

Het type besturingssysteem is: linux en de variant is centos8.

Het RAM (Random Access Memory) van de VM zal 2048 MB of 2 GB zijn.

De virtuele schijf van de VM wordt opgeslagen in de /kvm/schijf/centos8-01.img het dossier. De virtuele schijf is ongeveer 10 GB in grootte en het formaat is QCOW2 (QEMU Copy-On-Write v2).

De virtuele machine is toegankelijk via het VNC-protocol (Virtual Network Computing) voor extern bureaublad en de VNC-server luistert op alle beschikbare netwerkinterfaces die op uw KVM-host zijn geconfigureerd.

De KVM-host zal niet automatisch proberen verbinding te maken met de virtuele machine zodra de virtuele machine is gemaakt. De virtuele machine blijft op de achtergrond draaien.

Volledige virtualisatie gebruiken voor de virtuele machine. Hierdoor zullen virtuele machines beter presteren.

Gebruik de eerder gedownloade CentOS 8 ISO-image als de virtuele cd/dvd-rom van de virtuele machine. Dit wordt gebruikt voor het installeren van CentOS 8 op de virtuele machine.

Stelt de opstartvolgorde van de virtuele machine in. Het eerste opstartitem is de virtuele cd/dvd-rom en vervolgens de virtuele harde schijf. De virtuele machine kan dus opstarten vanaf de CentOS 8 ISO-image en CentOS 8 op de harde schijf installeren.

Dat zijn alle opties die je nodig hebt om een ​​virtuele KVM-machine te maken.

Zodra u de virt-install commando, zou KVM moeten beginnen met het maken van de virtuele machine. Dit kan even duren, afhankelijk van de configuratie van uw virtuele machine.

Op dit punt moet de virtuele KVM-machine worden gemaakt.

Zoals je kunt zien, is de nieuw gemaakte virtuele machine centos8-01 is aan het rennen.

Nu kunt u verbinding maken met de virtuele machine met behulp van elk VNC-clientprogramma en CentOS 8 erop installeren. Om via VNC verbinding te maken met de virtuele machine, moet u het VNC-poortnummer van de virtuele machine weten.

Het VNC-poortnummer van de virtuele KVM-machine vinden: centos8-01, voer de volgende opdracht uit:

$ virsh vncdisplay centos8-01

Zoals u kunt zien, is het VNC-poortnummer van de centos8-01 virtuele machine is 1.

Hier, poort 0 betekent poort 5900. Op dezelfde manier, poort 1 betekent poort 5901, enzovoorts.

Zoals u kunt zien, is de virtuele KVM-machine centos8-01 draait op poort 5901 (:1).

$ sudo netstat -tln

Als uw KVM-host het CentOS 8-besturingssysteem gebruikt, kunt u toegang tot poort toestaan 5901 met het volgende commando:

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

Voer de volgende opdracht uit om de wijzigingen in de firewall door te voeren:

$ sudo firewall-cmd --reload

Als uw KVM-host de Ubuntu 20 . gebruikt.04 LTS-besturingssysteem, u kunt toegang tot poort toestaan ​​allow 5901 met het volgende commando:

$ sudo ufw allow 5901/tcp

Voer de volgende opdracht uit om de wijzigingen in de firewall door te voeren:

$ sudo ufw herladen

Zoek het IP-adres van uw KVM-host met de volgende opdracht:

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

Mijn thuisnetwerk gebruikt het netwerksubnet 192.168.20.0/24. Het IP-adres van mijn KVM-host is dus: 192.168.20.131. De andere IP-adressen zijn privé-netwerkbruggen van de KVM-host.

Open een willekeurig VNC-clientprogramma en maak verbinding met het adres 192.168.20.131:1.

U zou het installatievenster van CentOS 8 moeten zien, zoals weergegeven in de onderstaande schermafbeelding. U kunt CentOS 8 op de virtuele KVM-machine installeren zoals u dat normaal zou doen.

Ik installeer de minimale serverversie van CentOS 8 voor de demonstratie in dit artikel.

CentOS 8 wordt geïnstalleerd in de virtuele KVM-machine centos8-01, zoals je kunt zien in de onderstaande schermafbeelding. Dit kan even duren om te voltooien.

Zodra CentOS 8 op de virtuele machine is geïnstalleerd, klikt u op Opnieuw opstarten.

De virtuele KVM-machine centos8-01 moet automatisch worden uitgeschakeld, zoals je kunt zien in de onderstaande schermafbeelding.

$ sudo virsh lijst --all

Start de centos8-01 KVM virtuele machine met de volgende opdracht:

$ virsh start centos8-01

Nu kunt u verbinding maken met de centos8-01 virtuele machine vanaf een VNC-client, zoals eerder. Zoals je kunt zien, werkt de minimale CentOS 8-server prima in de virtuele KVM-machine.

SSH-server installeren op de CentOS 8 virtuele machine

Het belangrijkste doel van dit artikel is om via SSH verbinding te maken met een CentOS 8 KVM virtuele machine. Er moet een SSH-server op uw virtuele CentOS 8 KVM-machine zijn geïnstalleerd om er via SSH verbinding mee te kunnen maken.

Installeer de OpenSSH-server op uw CentOS 8 KVM virtuele machine met de volgende opdracht:

$ sudo dnf installeer openssh-server -y

De OpenSSH-server zou nu moeten zijn geïnstalleerd. In mijn geval is het al geïnstalleerd.

Bevestig dat de sshd service is rennen en ingeschakeld met het volgende commando:

$ sudo systemctl status sshd

Als de sshd service niet actief is, kunt u deze starten met de volgende opdracht:

$ sudo systemctl start sshd

Als de sshd service is uitgeschakeld, kunt u deze inschakelen met de volgende opdracht:

$ sudo systemctl sshd inschakelen

De firewall van de CentOS 8 virtuele machine configureren

U moet de firewall van de virtuele machine configureren om toegang tot de SSH-poort toe te staan. Anders kun je geen verbinding maken met de virtuele machine via SSH, zelfs als alle configuraties in orde zijn.

SSH-toegang tot de virtuele KVM-machine toestaan centos8-01, voer de volgende opdracht uit:

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

Voer de volgende opdracht uit om de wijzigingen in de firewall door te voeren:

$ sudo firewall-cmd --reload

Methode 1: Toegang tot virtuele machines via SSH-tunneling

Standaard gebruikt KVM de private netwerkbrug standaard voor het netwerken van de virtuele machines. Het IP-adressubnet van de KVM-privénetwerkbrug standaard is niet toegankelijk vanaf een thuisnetwerk. Het is alleen toegankelijk vanaf een KVM-host. Dus om SSH naar uw CentOS 8 KVM virtuele machine te sturen vanaf een andere computer (in uw thuisnetwerk), moet u de verbinding omzeilen via een KVM-host. Dit wordt SSH-tunneling genoemd en werkt vergelijkbaar met een VPN.

Om SSH-tunneling te laten werken, moet op uw KVM-host een SSH-server zijn geïnstalleerd en moet u SSH-toegang hebben tot de KVM-host.

Als uw KVM-host CentOS 8 draait, kunt u de OpenSSH-server op uw KVM-host installeren met de volgende opdracht:

$ sudo dnf install openssh-server -y

Als uw KVM-host Ubuntu 20 . gebruikt.04 LTS, dan kunt u de OpenSSH-server op uw KVM-host installeren met de volgende opdracht:

$ sudo apt install openssh-server -y

Bevestig dat de sshd service is rennen en ingeschakeld met het volgende commando:

$ sudo systemctl status sshd

Als de sshd service niet actief is, kunt u deze starten met de volgende opdracht:

$ sudo systemctl start sshd

Als de sshd service is uitgeschakeld, kunt u deze inschakelen met de volgende opdracht:

$ sudo systemctl sshd inschakelen

Mogelijk moet u de firewall van uw KVM-host configureren om SSH-toegang ertoe toe te staan.

Als uw KVM-host het CentOS 8-besturingssysteem gebruikt, voert u de volgende opdracht uit om de firewall te configureren:

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

Voer de volgende opdracht uit om de wijzigingen door te voeren:

$ sudo firewall-cmd --reload

Als uw KVM-host de Ubuntu 20 . gebruikt.04 LTS-besturingssysteem, voert u de volgende opdracht uit om de firewall te configureren:

$ sudo ufw ssh . toestaan

Voer de volgende opdracht uit om de wijzigingen door te voeren:

$ sudo ufw herladen

Uw CentOS 8 KVM virtuele machine centos8-01 kan worden uitgeschakeld.

$ sudo virsh lijst --all

Als dat het geval is, kunt u de virtuele machine starten met het volgende commando:

$ sudo virsh start centos8-01

Maak verbinding met uw virtuele CentOS 8-machine met een VNC-client en voer de volgende opdracht uit op de virtuele machine om het privé-IP-adres te vinden:

$ hostnaam -I

In mijn geval is het privé-IP-adres van mijn CentOS 8 KVM virtuele machine: 192.168.122.89. Dit kan voor jou anders zijn.

Zoek het IP-adres van uw KVM-host met de volgende opdracht:

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

In mijn geval is het IP-adres: 192.168.20.131. Ik weet dit omdat mijn thuisnetwerk het subnet gebruikt 192.168.20.0/24.

Om een ​​tunnel naar de virtuele CentOS 8 KVM-machine te maken via de KVM-host, voert u de volgende opdracht uit vanaf uw computer:

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

Hier de -L optie wordt gebruikt om de SSH te vertellen om lokale port forwarding uit te voeren.

Hiermee worden alle verzoeken doorgestuurd die afkomstig zijn van de localhost haven 2200 naar de haven 22 van de CentOS 8 KVM virtuele machine, die het privé IP-adres heeft 192.168.122.89.

Aangezien de computer geen directe toegang heeft tot het netwerksubnet van de virtuele CentOS 8 KVM-machine 192.168.122.0/24, het tunnelt het verzoek via de KVM-host, die directe toegang heeft tot dat netwerksubnet.

Hier, 192.168.20.131 is het IP-adres van de KVM-host en sjovon is de SSH-aanmeldingsgebruikersnaam van de KVM-host.

Nadat u de opdracht hebt uitgevoerd, wordt u mogelijk de volgende vraag gesteld:. Type Ja en druk op .

Typ het wachtwoord van de login-gebruiker van uw KVM-host en druk op .

Je zou nu verbonden moeten zijn met de KVM-host via SSH.

Nu kunt u SSH naar uw virtuele CentOS 8 KVM-machine op de localhost haven 2200 als volgt:

$ ssh shovon@localhost -p 2200

Hier, sjovon is de login gebruikersnaam van de CentOS 8 KVM virtuele machine.

Nadat u de opdracht hebt uitgevoerd, wordt u mogelijk de volgende vraag gesteld:. Type Ja en druk op .

Typ het wachtwoord van de ingelogde gebruiker van uw CentOS 8 KVM virtuele machine en druk op .

U zou nu via SSH verbonden moeten zijn met de CentOS 8 KVM virtuele machine die op uw KVM-host draait, zoals u kunt zien in de onderstaande schermafbeelding.

Je kunt hier ook elk commando uitvoeren dat je wilt.

Methode 2: Toegang tot virtuele machines via KVM Public Network Bridge

Als u volledige toegang tot uw virtuele CentOS 8 KVM-machine wilt, kunt u een openbare KVM-netwerkbrug configureren. Een openbare KVM-netwerkbrug fungeert als netwerkswitch. Uw virtuele CentOS 8 KVM-machine krijgt een IP-adres van dezelfde DHCP-server als uw thuisnetwerk en, in hetzelfde netwerk, subnet als uw thuisnetwerk. Het is dus toegankelijk vanaf elk apparaat dat is aangesloten op uw thuisnetwerk.

Ik heb al een openbare KVM-netwerkbrug gemaakt openbaar en mijn CentOS 8 KVM virtuele machine geconfigureerd om de bridge te gebruiken. Ik leg het proces van het maken van de openbare KVM-netwerkbrug uit in mijn artikel Een CentOS 8 KVM-netwerkbridge-interface maken. Neem zeker een kijkje.

Nadat u een openbare KVM-netwerkbrug hebt gemaakt, moet u uw virtuele CentOS 8-machine configureren om de brug te gebruiken. Voordat u uw virtuele CentOS 8-machine configureert: centos8-01, controleer of de virtuele CentOS 8 KVM-machine draait met de volgende opdracht:

$ sudo virsh lijst -all

Zoals je kunt zien, is de virtuele CentOS 8 KVM-machine centos8-01 is aan het rennen. We moeten het stoppen voordat we het configureren.

U kunt uw CentOS 8 KVM virtuele machine uitschakelen centos8-01 met het volgende commando:

$ sudo virsh afsluiten centos8-01

Zoals u kunt zien, is de virtuele CentOS 8 KVM-machine uitgeschakeld.

$ sudo virsh lijst --all

Standaard gebruikt de virtuele CentOS 8 KVM-machine de standaard privé netwerk brug network. Ik zal het configureren om de . te gebruiken openbaar netwerkbrug die ik al heb gemaakt.

$ sudo virsh net-lijst --all

Voer de volgende opdracht uit om de configuratie van de virtuele CentOS 8 KVM-machine te bewerken:

$ sudo virsh bewerk centos8-01

Vind de koppel sectie, zoals aangegeven in de onderstaande schermafbeelding. Verander de bron netwerk van standaard naar openbaar.

OPMERKING: Het configuratiebestand wordt standaard geopend met de Vi-teksteditor. Om het configuratiebestand in Vi te bewerken, drukt u op ik gaan naar INSERT modus. Om het configuratiebestand op te slaan, drukt u op , typ in :wq!, en druk vervolgens op .

De configuratie van de virtuele machine moet nu worden gewijzigd.

Start de virtuele CentOS 8 KVM-machine met de volgende opdracht:

$ sudo virsh start centos8-01

Maak nu verbinding met uw CentOS 8 KVM virtuele machine met behulp van een VNC-client. Controleer het IP-adres van de virtuele machine met de volgende opdracht:

$ hostnaam -I

Zoals u kunt zien, is het IP-adres: 192.168.20.133. Dit IP-adres is geleverd door de DHCP-server van mijn thuisnetwerk. Dit is een IP-adres van het netwerksubnet 192.168.20.0/24, wat is het subnet van mijn thuisnetwerk.

U kunt nu als volgt verbinding maken met de virtuele CentOS 8 KVM-machine vanaf elke computer die op uw thuisnetwerk is aangesloten:

$ ssh [email protected]

Hier, sjovon is de login gebruikersnaam van de CentOS 8 KVM virtuele machine.

Nadat u de opdracht hebt uitgevoerd, wordt u mogelijk de volgende vraag gesteld:. Type Ja en druk op .

Typ het wachtwoord van de ingelogde gebruiker van uw CentOS 8 KVM virtuele machine en druk op .

U zou nu via SSH verbonden moeten zijn met de CentOS 8 KVM virtuele machine die op uw KVM-host draait, zoals u kunt zien in de onderstaande schermafbeelding.

Je kunt hier ook elk commando uitvoeren dat je wilt.

Conclusie

Dit artikel liet je zien hoe je een KVM CentOS 8 virtuele machine maakt en verbinding maakt met de virtuele machine via SSH. Als de virtuele CentOS 8 KVM-machine niet toegankelijk is vanaf het thuisnetwerk (deze gebruikt een privénetwerkbrug), moet u SSH-tunneling gebruiken om verbinding te maken met de virtuele KVM-machine via SSH. Als u volledige toegang tot de virtuele CentOS 8 KVM-machine wilt, kunt u een openbare netwerkbrug instellen en de virtuele machine configureren om de brug te gebruiken. Op deze manier is uw virtuele KVM-machine toegankelijk vanuit uw hele thuisnetwerk.

Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...
De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...