KVM

SSH da macchina locale a virtuale tramite KVM e CentOS 8 Guest

SSH da macchina locale a virtuale tramite KVM e CentOS 8 Guest
Per impostazione predefinita, le macchine virtuali KVM utilizzano reti NAT private, accessibili solo dall'host KVM. Quindi, non puoi accedere alle macchine virtuali KVM dalla tua rete domestica. Per SSH in macchine virtuali in esecuzione sul tuo host KVM, ci sono due metodi per farlo: tunneling SSH e configurazione di un bridge di rete KVM pubblico. Questo articolo mostra come eseguire l'SSH in una macchina virtuale KVM CentOS 8 dalla rete domestica tramite tunneling SSH e utilizzando un bridge di rete KVM pubblico.

Prerequisiti

Per provare gli esempi in questo articolo, devi avere installato KVM sul tuo computer. Se non hai KVM installato sul tuo computer, puoi leggere i seguenti articoli su LinuxHint.com per assistenza sull'installazione di KVM sulla distribuzione Linux desiderata.

- Installa KVM su Ubuntu 20.04

- Installa KVM su CentOS 8

Creazione di una macchina virtuale KVM CentOS 8

Questa sezione mostra come creare una macchina virtuale KVM CentOS 8 per testare la connettività SSH.

Innanzitutto, scarica l'immagine di installazione ISO di CentOS 8. Per mantenere organizzati tutti i file/dati della macchina virtuale, è una buona idea memorizzare l'immagine ISO nel in /kvm/iso/ directory.

Vai a /kvm/iso/ directory con il seguente comando:

$ cd /kvm/iso

È possibile trovare il collegamento all'immagine di installazione ISO di CentOS 8 sul sito Web ISO ufficiale di CentOS.

Una volta caricata la pagina, fai clic sul mirror CentOS 8 più vicino.

Dovrebbero essere elencate tutte le immagini di installazione ISO di CentOS 8 disponibili.

Scaricherò l'immagine di installazione ISO NetBoot di CentOS 8 per questo articolo. Per installare CentOS 8 su una macchina virtuale KVM utilizzando l'immagine di installazione ISO NetBoot, la macchina virtuale richiede la connettività Internet internet.

Se non si desidera configurare la rete durante l'installazione di CentOS 8 sulla macchina virtuale, selezionare il minimo o il DVD Immagine di installazione ISO di CentOS 8.

Fare clic con il pulsante destro del mouse (RMB) sul file ISO per scaricare e copiare il collegamento del file ISO.

Scarica l'immagine di installazione ISO di CentOS 8 usando wget, come segue:

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

wget dovrebbe iniziare a scaricare l'immagine ISO di CentOS 8. Ci vorrà un po' di tempo per completare.

A questo punto, dovrebbe essere scaricata l'immagine ISO di CentOS 8.

L'immagine ISO di CentOS 8 è disponibile nel /kvm/iso/ directory, come puoi vedere nello screenshot qui sotto.

$ ls -lh

Una volta scaricata l'immagine ISO CentOS, creare una macchina virtuale KVM con il seguente comando:

$ sudo virt-install --name centos8-01 \
--tipo di sistema operativo linux \
--os-variante centos8 \
--montone 2048 \
--disco /kvm/disco/centos8-01.img,dispositivo=disco,bus=virtio,dimensione=10,formato=qcow2 \
--grafica vnc, ascolta=0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom /kvm/iso/CentOS-8.2.2004-x86_64-boot.iso\
--cdrom di avvio, hd

Il nome della macchina virtuale sarà centos8-01.

Il tipo di sistema operativo è linux e la variante è centos8.

La RAM (Random Access Memory) della VM sarà 2048 MB o 2 GB.

Il disco virtuale della VM verrà salvato nel /kvm/disk/centos8-01.img file. Il disco virtuale è di circa 10 GB di dimensioni e il formato è QCOW2 (QEMU Copy-On-Write v2).

La macchina virtuale sarà accessibile tramite il protocollo desktop remoto VNC (Virtual Network Computing) e il server VNC sarà in ascolto su tutte le interfacce di rete disponibili configurate sul tuo host KVM.

L'host KVM non tenterà automaticamente di connettersi alla macchina virtuale una volta creata la macchina virtuale. La macchina virtuale continuerà a funzionare in background.

Usa la virtualizzazione completa per la macchina virtuale. Ciò migliorerà le prestazioni delle macchine virtuali.

Usa l'immagine ISO di CentOS 8 precedentemente scaricata come CD/DVD ROM virtuale della macchina virtuale. Questo viene utilizzato per l'installazione di CentOS 8 sulla macchina virtuale.

Imposta l'ordine di avvio della macchina virtuale. La prima voce di avvio è il CD/DVD ROM virtuale, quindi il disco rigido virtuale. Quindi, la macchina virtuale sarà in grado di avviarsi dall'immagine ISO di CentOS 8 e installare CentOS 8 sul disco rigido.

Queste sono tutte le opzioni necessarie per creare una macchina virtuale KVM.

Una volta eseguito il virt-install comando, KVM dovrebbe iniziare a creare la macchina virtuale. L'operazione potrebbe richiedere del tempo, a seconda della configurazione della macchina virtuale.

A questo punto dovrebbe essere creata la macchina virtuale KVM.

Come puoi vedere, la macchina virtuale appena creata centos8-01 sta correndo.

Ora puoi connetterti alla macchina virtuale utilizzando qualsiasi programma client VNC e installare CentOS 8 su di essa. Per connettersi alla macchina virtuale tramite VNC, è necessario conoscere il numero di porta VNC della macchina virtuale.

Per trovare il numero di porta VNC della macchina virtuale KVM centos8-01, eseguire il seguente comando:

$ virsh vncdisplay centos8-01

Come puoi vedere, il numero di porta VNC del centos8-01 la macchina virtuale è 1.

qui, porto 0 significa porto 5900. Allo stesso modo, porto 1 significa porto 5901, e così via.

Come puoi vedere, la macchina virtuale KVM centos8-01 è in esecuzione sulla porta 5901 (:1).

$ sudo netstat -tln

Se il tuo host KVM esegue il sistema operativo CentOS 8, puoi consentire l'accesso alla porta 5901 con il seguente comando:

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

Per rendere effettive le modifiche al firewall, eseguire il comando seguente:

$ sudo firewall-cmd --reload

Se il tuo host KVM esegue Ubuntu 20.04 LTS sistema operativo, è possibile consentire l'accesso alla porta 5901 con il seguente comando:

$ sudo ufw allow 5901/tcp

Per rendere effettive le modifiche al firewall, eseguire il comando seguente:

$ sudo ufw reload

Trova l'indirizzo IP del tuo host KVM con il seguente comando:

$ nome host -I | tr " " "\n"

La mia rete domestica sta utilizzando la sottorete di rete 192.168.20.0/24. Quindi, l'indirizzo IP del mio host KVM è 192.168.20.131. Gli altri indirizzi IP sono bridge di rete privati ​​dell'host KVM.

Apri qualsiasi programma client VNC e connettiti all'indirizzo 192.168.20.131:1.

Dovresti vedere la finestra di installazione di CentOS 8, come mostrato nello screenshot qui sotto. Puoi installare CentOS 8 sulla macchina virtuale KVM come faresti normalmente.

Sto installando la versione server minima di CentOS 8 per la dimostrazione in questo articolo.

CentOS 8 è in fase di installazione nella macchina virtuale KVM centos8-01, come puoi vedere nello screenshot qui sotto. Potrebbe volerci un po' di tempo per essere completato.

Una volta installato CentOS 8 sulla macchina virtuale, fare clic su Riavvia.

La macchina virtuale KVM centos8-01 dovrebbe spegnersi automaticamente, come puoi vedere nello screenshot qui sotto.

$ sudo virsh list --all

Inizia il centos8-01 Macchina virtuale KVM con il seguente comando:

$ virsh start centos8-01

Ora puoi connetterti a centos8-01 macchina virtuale da un client VNC, come prima. Come puoi vedere, il server minimo CentOS 8 funziona perfettamente nella macchina virtuale KVM.

Installazione del server SSH sulla macchina virtuale CentOS 8

L'obiettivo principale di questo articolo è connettersi a una macchina virtuale KVM CentOS 8 tramite SSH. Devi avere un server SSH installato sulla tua macchina virtuale KVM CentOS 8 per poterti connettere tramite SSH.

Installa il server OpenSSH sulla tua macchina virtuale KVM CentOS 8 con il seguente comando:

$ sudo dnf install openssh-server -y

Il server OpenSSH dovrebbe ora essere installato. Nel mio caso è già installato.

Conferma che il sshd il servizio è in esecuzione e abilitato con il seguente comando:

$ sudo systemctl status sshd

Se la sshd service non è in esecuzione, puoi avviarlo con il seguente comando:

$ sudo systemctl start sshd

Se la sshd il servizio è disabilitato, puoi abilitarlo con il seguente comando:

$ sudo systemctl abilita sshd

Configurazione del firewall della macchina virtuale CentOS 8

È necessario configurare il firewall della macchina virtuale per consentire l'accesso alla porta SSH. Altrimenti, non sarai in grado di connetterti alla macchina virtuale tramite SSH, anche se tutte le configurazioni sono a posto.

Per consentire l'accesso SSH alla macchina virtuale KVM centos8-01, eseguire il seguente comando:

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

Per rendere effettive le modifiche al firewall, eseguire il comando seguente:

$ sudo firewall-cmd --reload

Metodo 1: accesso alle macchine virtuali tramite tunneling SSH

Per impostazione predefinita, KVM utilizza il bridge di rete privato predefinito per mettere in rete le macchine virtuali. La sottorete dell'indirizzo IP del bridge di rete privata KVM predefinito non è accessibile da una rete domestica. È accessibile solo da un host KVM. Quindi, per SSH nella tua macchina virtuale KVM CentOS 8 da un altro computer (nella tua rete domestica), devi bypassare la connessione tramite un host KVM. Questo si chiama tunneling SSH e funziona in modo simile a una VPN.

Affinché il tunneling SSH funzioni, il tuo host KVM deve avere un server SSH installato e devi avere accesso SSH all'host KVM.

Se il tuo host KVM esegue CentOS 8, puoi installare il server OpenSSH sul tuo host KVM con il seguente comando:

$ sudo dnf install openssh-server -y

Se il tuo host KVM esegue Ubuntu 20.04 LTS, quindi puoi installare il server OpenSSH sul tuo host KVM con il seguente comando:

$ sudo apt install openssh-server -y

Conferma che il sshd il servizio è in esecuzione e abilitato con il seguente comando:

$ sudo systemctl status sshd

Se la sshd service non è in esecuzione, puoi avviarlo con il seguente comando:

$ sudo systemctl start sshd

Se la sshd il servizio è disabilitato, puoi abilitarlo con il seguente comando:

$ sudo systemctl abilita sshd

Potrebbe essere necessario configurare il firewall del tuo host KVM per consentire l'accesso SSH ad esso.

Se il tuo host KVM utilizza il sistema operativo CentOS 8, esegui il seguente comando per configurare il firewall:

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

Affinché le modifiche abbiano effetto, eseguire il seguente comando:

$ sudo firewall-cmd --reload

Se il tuo host KVM utilizza Ubuntu 20.04 LTS, eseguire il comando seguente per configurare il firewall:

$ sudo ufw allow ssh

Affinché le modifiche abbiano effetto, eseguire il seguente comando:

$ sudo ufw reload

La tua macchina virtuale KVM CentOS 8 centos8-01 potrebbe essere spento.

$ sudo virsh list --all

In tal caso, puoi avviare la macchina virtuale con il seguente comando:

$ sudo virsh start centos8-01

Connettiti alla tua macchina virtuale CentOS 8 con un client VNC ed esegui il seguente comando sulla macchina virtuale per trovare il suo indirizzo IP privato:

$ hostname -I

Nel mio caso, l'indirizzo IP privato della mia macchina virtuale KVM CentOS 8 è 192.168.122.89. Questo potrebbe essere diverso per te.

Trova l'indirizzo IP del tuo host KVM con il seguente comando:

$ nome host -I | tr " " "\n"

Nel mio caso, l'indirizzo IP è 192.168.20.131. Lo so perché la mia rete domestica utilizza la sottorete 192.168.20.0/24.

Per creare un tunnel verso la macchina virtuale KVM CentOS 8 tramite l'host KVM, esegui il seguente comando dal tuo computer:

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

qui, il -l l'opzione viene utilizzata per dire a SSH di eseguire il port forwarding locale.

Questo inoltrerà tutte le richieste provenienti dal localhost porta 2200 portare 22 della macchina virtuale KVM CentOS 8, che ha l'indirizzo IP privato 192.168.122.89.

Poiché il computer non ha accesso diretto alla sottorete di rete della macchina virtuale KVM CentOS 8 192.168.122.0/24, incanala la richiesta attraverso l'host KVM, che ha accesso diretto a quella sottorete di rete.

Qui, 192.168.20.131 è l'indirizzo IP dell'host KVM e shovon è il nome utente di accesso SSH dell'host KVM.

Una volta eseguito il comando, potrebbe essere posta la seguente domanda. genere e premi .

Digita la password dell'utente di accesso del tuo host KVM e premi .

Ora dovresti essere connesso all'host KVM tramite SSH.

Ora puoi SSH nella tua macchina virtuale KVM CentOS 8 sul localhost porta 2200 come segue:

$ ssh shovon@localhost -p 2200

Qui, shovon è il nome utente di accesso della macchina virtuale KVM CentOS 8.

Una volta eseguito il comando, potrebbe essere posta la seguente domanda. genere e premi .

Digita la password dell'utente di accesso della tua macchina virtuale KVM CentOS 8 e premi .

Ora dovresti essere connesso alla macchina virtuale KVM CentOS 8 in esecuzione sul tuo host KVM tramite SSH, come puoi vedere nello screenshot qui sotto.

Puoi anche eseguire qualsiasi comando che desideri qui.

Metodo 2: accesso alle macchine virtuali tramite bridge di rete pubblica KVM

Se desideri l'accesso completo alla tua macchina virtuale KVM CentOS 8, puoi configurare un bridge di rete KVM pubblico. Un bridge di rete KVM pubblico funge da switch di rete. La tua macchina virtuale KVM CentOS 8 otterrà un indirizzo IP dallo stesso server DHCP della tua rete domestica e, nella stessa rete, sottorete della tua rete domestica. Quindi, sarà accessibile da ogni dispositivo connesso alla rete domestica.

Ho già creato un bridge di rete pubblica KVM pubblico e ho configurato la mia macchina virtuale KVM CentOS 8 per utilizzare il bridge. Spiego il processo di creazione del bridge di rete pubblica KVM nel mio articolo Come creare un'interfaccia bridge di rete KVM CentOS 8. Assicurati di dare un'occhiata.

Dopo aver creato un bridge di rete pubblica KVM, è necessario configurare la macchina virtuale CentOS 8 per utilizzare il bridge. Prima di configurare la macchina virtuale CentOS 8 centos8-01, controlla se la macchina virtuale KVM CentOS 8 è in esecuzione con il seguente comando:

$ sudo virsh list -all

Come puoi vedere, la macchina virtuale KVM CentOS 8 centos8-01 sta correndo. Dovremmo fermarlo prima di configurarlo.

Puoi spegnere la tua macchina virtuale KVM CentOS 8 centos8-01 con il seguente comando:

$ sudo virsh arresto centos8-01

Come puoi vedere, la macchina virtuale KVM CentOS 8 è spenta.

$ sudo virsh list --all

Per impostazione predefinita, la macchina virtuale KVM CentOS 8 utilizza il predefinito bridge di rete privata. Lo configurerò per usare il pubblico bridge di rete che ho già creato.

$ sudo virsh net-list --all

Per modificare la configurazione della macchina virtuale KVM CentOS 8, eseguire il seguente comando:

$ sudo virsh edit centos8-01

Trovare la interfaccia sezione, come indicato nello screenshot qui sotto. Cambiare il fonte rete da predefinito per pubblico.

NOTA: Il file di configurazione si apre con l'editor di testo Vi per impostazione predefinita. Per modificare il file di configurazione in Vi, premi io andare a INSERIRE modalità. Per salvare il file di configurazione, premere , digitare :wq!, e poi premere .

La configurazione della macchina virtuale dovrebbe ora essere modificata.

Avvia la macchina virtuale KVM CentOS 8 con il seguente comando:

$ sudo virsh start centos8-01

Ora, connettiti alla tua macchina virtuale KVM CentOS 8 utilizzando un client VNC. Controllare l'indirizzo IP della macchina virtuale con il seguente comando:

$ hostname -I

Come puoi vedere, l'indirizzo IP è 192.168.20.133. Questo indirizzo IP è stato fornito dal server DHCP della mia rete domestica. Questo è un indirizzo IP della sottorete di rete 192.168.20.0/24, che è la sottorete della mia rete domestica.

Ora puoi connetterti alla macchina virtuale KVM CentOS 8 da qualsiasi computer connesso alla tua rete domestica, come segue:

$ ssh [email protected]

Qui, shovon è il nome utente di accesso della macchina virtuale KVM CentOS 8.

Una volta eseguito il comando, potrebbe essere posta la seguente domanda. genere e premi .

Digita la password dell'utente di accesso della tua macchina virtuale KVM CentOS 8 e premi .

Ora dovresti essere connesso alla macchina virtuale KVM CentOS 8 in esecuzione sul tuo host KVM tramite SSH, come puoi vedere nello screenshot qui sotto.

Puoi anche eseguire qualsiasi comando che desideri qui.

Conclusione

Questo articolo ti ha mostrato come creare una macchina virtuale KVM CentOS 8 e connetterti alla macchina virtuale tramite SSH. Quando la macchina virtuale KVM CentOS 8 non è accessibile dalla rete domestica (utilizza un bridge di rete privato), è necessario utilizzare il tunneling SSH per connettersi alla macchina virtuale KVM tramite SSH. Quando si desidera l'accesso completo alla macchina virtuale KVM CentOS 8, è possibile impostare un bridge di rete pubblica e configurare la macchina virtuale per utilizzare il bridge. In questo modo, la tua macchina virtuale KVM può essere accessibile da tutta la tua rete domestica.

Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...
Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...