SSH dalla macchina locale al virtuale tramite KVM e CentOS 8 Guest

SSH dalla macchina locale al virtuale tramite KVM e CentOS 8 Guest
Per impostazione predefinita, le macchine virtuali KVM utilizzano reti NAT private, che sono 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 SSH in una macchina virtuale KVM CentOS 8 dalla tua rete domestica tramite il tunneling SSH e utilizzando un bridge di rete KVM pubblico.

Prerequisiti

Per provare gli esempi in questo articolo, devi avere KVM installato sul tuo computer. Se non hai installato KVM 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 da 8 kvm centesimi

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

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

Navigare verso il /kvm/iso/ Directory con il seguente comando:

$ CD /KVM /ISO

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

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

Tutte le immagini di installazione ISO CentOS 8 disponibili dovrebbero essere elencate.

Scaricherò l'immagine di installazione ISO di 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 connettività Internet.

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

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

Scarica l'immagine di installazione ISO CentOS 8 utilizzando Wget, come segue:

$ sudo wget http: // specchio.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 CentOS 8. Ci vorrà un po 'di tempo per completare.

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

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

$ ls -lh

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

$ sudo virt-install --name centos8-01 \
--Linux di tipo OS \
--OS-VARIANT CENTOS8 \
--RAM 2048 \
--disco/kvm/disco/centos8-01.img, dispositivo = disco, bus = virtio, size = 10, format = qcow2 \
--Grafica vnc, ascolta = 0.0.0.0 \
--noautoconsole \
--hvm \
--CDROM/KVM/ISO/CENTOS-8.2.2004-x86_64-boot.iso \
--Boot CDROM, HD

Il nome della macchina virtuale sarà CentOS8-01.

Il tipo di sistema operativo è Linux E la variante è centos8.

La RAM (memoria di accesso casuale) della VM sarà 2048 MB o 2 GB.

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

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

L'host KVM non proverà automaticamente a 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. Questo farà funzionare le macchine virtuali.

Utilizzare l'immagine ISO CentOS 8 precedentemente scaricata come ROM CD/DVD 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 è la ROM CD/DVD virtuale, quindi il disco rigido virtuale. Quindi, la macchina virtuale sarà in grado di avviare l'immagine ISO CentOS 8 e installare CentOS 8 sul disco rigido.

Questa è 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. Questo potrebbe richiedere del tempo, a seconda della configurazione della macchina virtuale.

A questo punto, la macchina virtuale KVM dovrebbe essere creata.

Come puoi vedere, la macchina virtuale appena creata CentOS8-01 è in esecuzione.

Ora puoi connetterti alla macchina virtuale utilizzando qualsiasi programma client VNC e installare CentOS 8 su di esso. 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, Esegui 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, port 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 l'host KVM esegue il sistema operativo CentOS 8, è possibile consentire l'accesso alla porta 5901 con il seguente comando:

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

Per avere effetto le modifiche al firewall, eseguire il comando seguente:

$ sudo firewall-cmd--ricarichi

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

$ sudo UFW Consenti 5901/TCP

Per avere effetto le modifiche al firewall, eseguire il comando seguente:

$ sudo ufw ricarica

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

$ hostname -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 ponti 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 CentOS 8, come mostrato nello screenshot seguente. Puoi installare CentOS 8 sulla macchina virtuale KVM come faresti normalmente.

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

CentOS 8 è installato nella macchina virtuale KVM CentOS8-01, Come puoi vedere nello screenshot qui sotto. Questo potrebbe richiedere un po 'per completare.

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

La macchina virtuale KVM CentOS8-01 dovrebbe essere spento automaticamente, come puoi vedere nello screenshot seguente.

$ SUDO VIRSH ELENCO -Tutti

Iniziare il CentOS8-01 KVM Virtual Machine 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 CentOS 8 viene funzionato bene nella macchina virtuale KVM.

Installazione del server SSH sulla macchina virtuale CentOS 8

L'obiettivo principale di questo articolo è quello di connettersi a una macchina virtuale da 8 kvm tramite SSH. È necessario avere un server SSH installato sulla macchina virtuale CentOS da 8 kvm per poterne connettere tramite SSH.

Installa il server OpenSSH sulla macchina virtuale CentOS da 8 kvm con il seguente comando:

$ sudo dnf installa OpenSsh -server -y

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

Confermare che il sshd Il servizio è corsa E abilitato con il seguente comando:

$ sudo systemctl status sshd

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

$ sudo systemctl avvia sshd

Se la sshd Il servizio è disabilitato, è possibile 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 vanno bene.

Per consentire a SSH l'accesso alla macchina virtuale KVM CentOS8-01, Esegui il seguente comando:

$ sudo firewall-cmd-sierervice = ssh --permanent

Per avere effetto le modifiche al firewall, eseguire il comando seguente:

$ sudo firewall-cmd--ricarichi

Metodo 1: accedere alle macchine virtuali tramite il tunneling SSH

Per impostazione predefinita, KVM utilizza il ponte di rete privata predefinito Per networking delle 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 CentOS da 8 kvm da un altro computer (nella tua rete domestica), è necessario bypassare la connessione tramite un host KVM. Questo si chiama tunneling ssh e funziona simile a una VPN.

Affinché il tunneling SSH funzioni, l'host KVM deve avere un server SSH installato e è necessario avere accesso SSH all'host KVM.

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

$ sudo dnf installa OpenSsh -server -y

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

$ sudo apt install OpenSsh -server -y

Confermare che il sshd Il servizio è corsa E abilitato con il seguente comando:

$ sudo systemctl status sshd

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

$ sudo systemctl avvia sshd

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

$ sudo systemctl abilita sshd

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

Se l'host KVM utilizza il sistema operativo CentOS 8, eseguire il seguente comando per configurare il firewall:

$ sudo firewall-cmd-sierervice = ssh --permanent

Per avere effetto le modifiche, eseguire il seguente comando:

$ sudo firewall-cmd--ricarichi

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

$ sudo ufw consenti ssh

Per avere effetto le modifiche, eseguire il seguente comando:

$ sudo ufw ricarica

La tua macchina virtuale CentOS da 8 kvm CentOS8-01 può essere spento.

$ SUDO VIRSH ELENCO -Tutti

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

$ sudo virsh start centos8-01

Connettiti alla 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 CentOS da 8 kvm è 192.168.122.89. Questo potrebbe essere diverso per te.

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

$ hostname -i | tr "" "\ n"

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

Per fare un tunnel alla macchina virtuale CentOS 8 KVM tramite l'host KVM, eseguire il seguente comando dal computer:

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

Qui, il -L L'opzione viene utilizzata per dire all'SSH di eseguire il port forward locale.

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

Poiché il computer non ha accesso diretto alla sottorete di rete della macchina virtuale CentOS 8 KVM 192.168.122.0/24, Tunnisce la richiesta tramite 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, potresti essere posta la seguente domanda. Tipo e premere .

Digita la password dell'utente di accesso dell'host KVM e premere .

Ora dovresti essere connesso all'host KVM tramite SSH.

Ora puoi ssh nella tua macchina virtuale CentOS da 8 kVm sul Localhost porta 2200 come segue:

$ ssh shovon@localhost -p 2200

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

Una volta eseguito il comando, potresti essere posta la seguente domanda. Tipo e premere .

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

Ora dovresti essere connesso alla macchina virtuale CentOS 8 KVM in esecuzione sull'host KVM tramite SSH, come puoi vedere nello screenshot seguente.

Puoi eseguire qualsiasi comando che desideri anche qui.

Metodo 2: accesso alle macchine virtuali tramite KVM Public Network Bridge

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

Ho già creato un ponte di rete pubblica KVM pubblico e configurato My CentOS 8 KVM Virtual Machine per utilizzare il ponte. Spiego il processo di creazione del ponte di rete pubblica KVM nel mio articolo Come creare un centOS da 8 kvm in rete interfaccia bridge. Assicurati di verificarlo.

Dopo aver creato un ponte di rete pubblica KVM, è necessario configurare la macchina virtuale CentOS 8 per utilizzare il ponte. Prima di configurare la macchina virtuale CentOS 8 CentOS8-01, Controlla se la macchina virtuale CentOS da 8 kvm è in esecuzione con il seguente comando:

$ sudo virsh list --ally

Come puoi vedere, la macchina virtuale CentOS da 8 kvm CentOS8-01 è in esecuzione. Dovremmo fermarlo prima di configurarlo.

Puoi spegnere la tua macchina virtuale CentOS da 8 kvm CentOS8-01 con il seguente comando:

$ SUDO VIRSH Shutdown CentOS8-01

Come puoi vedere, la macchina virtuale CentOS da 8 kvm è spente.

$ SUDO VIRSH ELENCO -Tutti

Per impostazione predefinita, la macchina virtuale CentOS da 8 kvm utilizza il predefinito Bridge di rete privato. Lo configura per usare il pubblico Network Bridge che ho già creato.

$ sudo virsh net-list --ally

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

$ sudo virsh modifica centos8-01

Trovare il interfaccia sezione, come contrassegnato nello screenshot seguente. Cambiare il fonte rete da predefinito A 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, premere 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.

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

$ sudo virsh start centos8-01

Ora, connettiti alla macchina virtuale CentOS 8 KVM 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 CentOS da 8 kvm da qualsiasi computer collegato alla rete domestica, come segue:

$ ssh [email protected]

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

Una volta eseguito il comando, potresti essere posta la seguente domanda. Tipo e premere .

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

Ora dovresti essere connesso alla macchina virtuale CentOS 8 KVM in esecuzione sull'host KVM tramite SSH, come puoi vedere nello screenshot seguente.

Puoi eseguire qualsiasi comando che desideri anche qui.

Conclusione

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