SSH z maszyny lokalnej do wirtualnej przez KVM i Centos 8 Guest

SSH z maszyny lokalnej do wirtualnej przez KVM i Centos 8 Guest
Domyślnie maszyny wirtualne KVM używają prywatnych sieci NAT, które są dostępne tylko z hosta KVM. Nie możesz więc uzyskać dostępu do maszyn wirtualnych KVM z sieci domowej. Do SSH do maszyn wirtualnych działających na hoście KVM, istnieją dwie metody: tunelowanie SSH i konfiguracja publicznego mostu sieciowego KVM. W tym artykule pokazuje, jak SSH w wirtualną maszynę KVM Centos 8 z sieci domowej za pośrednictwem tunelowania SSH i korzystania z publicznego mostu sieciowego KVM.

Wymagania wstępne

Aby wypróbować przykłady w tym artykule, musisz mieć KVM zainstalowane na komputerze. Jeśli nie masz zainstalowanego KVM na komputerze, możesz odczytać następujące artykuły w Linuxhint.Com, aby uzyskać pomoc w instalacji KVM w pożądanej dystrybucji Linux.

- Zainstaluj KVM na Ubuntu 20.04

- Zainstaluj KVM na CentOS 8

Tworzenie maszyny wirtualnej CentOS 8 KVM

Ta sekcja pokazuje, jak utworzyć maszynę wirtualną CentOS 8 kVM do testowania łączności SSH.

Najpierw pobierz obraz instalacji Centos 8 ISO. Aby utrzymać wszystkie wirtualne pliki/dane maszynowe, dobrym pomysłem jest przechowywanie obrazu ISO w /kvm/ISO/ informator.

Przejść do /kvm/ISO/ Katalog z następującym poleceniem:

$ CD /kVM /ISO

Link do obrazu instalacji Centos 8 ISO na oficjalnej stronie internetowej ISO Centos.

Gdy strona się załaduje, kliknij najbliższe lustro Centos 8.

Należy wymienić wszystkie dostępne obrazy instalacyjne CENTOS 8.

Pobieram Netboot ISO Instalację obrazu CentOS 8 dla tego artykułu. Aby zainstalować CentOS 8 na maszynie wirtualnej KVM za pomocą obrazu instalacji ISO Netboot, maszyna wirtualna wymaga łączności internetowej.

Jeśli nie chcesz konfigurować sieci podczas instalowania CentOS 8 na maszynie wirtualnej, wybierz albo minimalny albo płyta DVD Obraz instalacji ISO CentOS 8.

Kliknij prawym przyciskiem myszy (RMB) w pliku ISO, aby pobrać i skopiować link pliku ISO.

Pobierz obraz instalacji Centos 8 ISO za pomocą wget, następująco:

$ sudo wget http: // lustro.Dhakacom.com/centos/
8.2.2004/ISOS/x86_64/centos-8.2.2004-x86_64-boot.ISO

WGET powinien zacząć pobierać obraz Centos 8 ISO. Ukończenie zajmie trochę czasu.

W tym momencie należy pobrać obraz Centos 8 ISO.

Obraz Centos 8 ISO jest dostępny w /kvm/ISO/ katalog, jak widać na zrzucie ekranu poniżej.

$ ls -lh

Po pobraniu obrazu Centos ISO utwórz maszynę wirtualną KVM za pomocą następującego polecenia:

$ sudo vir-install-Nazwa centos8-01 \
--Linux typu OS \
--OS-VARIANT CENTOS8 \
--Ram 2048 \
--dysk/kVM/dysk/centos8-01.IMG, urządzenie = dysk, bus = virtio, rozmiar = 10, format = qcow2 \
--Graphics VNC, słuchaj = 0.0.0.0 \
--noautoconsole \
--hvm \
--CDROM/KVM/ISO/CENTOS-8.2.2004-x86_64-boot.ISO \
--Boot CDROM, HD

Nazwa maszyny wirtualnej będzie Centos8-01.

Typ systemu operacyjnego jest Linux A wariant jest Centos8.

RAM (pamięć o dostępie losowo) VM będzie wynosić 2048 MB lub 2 GB.

Dysk wirtualny maszyny wirtualnej zostanie zapisany w /kvm/dysk/centos8-01.img plik. Dysk wirtualny jest o 10 GB pod względem wielkości i format QCOW2 (Qemu Copy-on-Write V2).

Maszyna wirtualna będzie dostępna za pośrednictwem protokołu zdalnego pulpitu VNC (Virtual Network Computing), a serwer VNC będzie słuchał we wszystkich dostępnych interfejsach sieciowych skonfigurowanych na hoście KVM.

Host KVM nie będzie automatycznie próbował podłączyć się do maszyny wirtualnej po utworzeniu maszyny wirtualnej. Maszyna wirtualna będzie działać w tle.

Użyj pełnej wirtualizacji dla maszyny wirtualnej. To sprawi, że maszyny wirtualne osiągają lepsze wyniki.

Użyj obrazu Centos 8 ISO wcześniej pobranego jako wirtualny CD/DVD ROM z maszyny wirtualnej. Służy to do instalowania CentOS 8 na maszynie wirtualnej.

Ustawia kolejność rozruchu maszyny wirtualnej. Pierwszym wpisem rozruchu jest wirtualny ROM CD/DVD, a następnie wirtualny dysk twardy. Tak więc maszyna wirtualna będzie mogła uruchomić się z obrazu Centos 8 ISO i zainstalować Centos 8 na dysku twardym.

To wszystkie opcje potrzebne do utworzenia maszyny wirtualnej KVM.

Po uruchomieniu Virt-install Polecenie, KVM powinien zacząć tworzyć maszynę wirtualną. Może to potrwać chwilę, w zależności od konfiguracji maszyny wirtualnej.

W tym momencie należy utworzyć maszynę wirtualną KVM.

Jak widać, nowo utworzona maszyna wirtualna Centos8-01 biegnie.

Teraz możesz połączyć się z maszyną wirtualną za pomocą dowolnego programu klienta VNC i zainstalować na nim Centos 8. Aby połączyć się z maszyną wirtualną za pomocą VNC, musisz znać numer portu VNC maszyny wirtualnej.

Aby znaleźć numer portu VNC maszyny wirtualnej KVM Centos8-01, Uruchom następujące polecenie:

$ virsh vncdisplay Centos8-01

Jak widać, numer portu VNC Centos8-01 Maszyna wirtualna jest 1.

Tutaj, port 0 oznacza port 5900. W ten sam sposób port 1 oznacza port 5901, i tak dalej.

Jak widać, maszyna wirtualna KVM Centos8-01 działa na porcie 5901 (: 1).

$ sudo netstat -tln

Jeśli Twój host KVM działa w systemie operacyjnym CentOS 8, możesz umożliwić dostęp do portu 5901 Z następującym poleceniem:

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

Aby zmienia się zapory ogniowa, uruchom następujące polecenie:

$ sudo firewall-cmd-odpowiadanie

Jeśli Twój host KVM działa Ubuntu 20.04 LTS System operacyjny, możesz umożliwić dostęp do portu 5901 Z następującym poleceniem:

$ sudo ufw zezwala na 5901/tcp

Aby zmienia się zapory ogniowa, uruchom następujące polecenie:

$ sudo ufw przeładowanie

Znajdź adres IP swojego hosta KVM za pomocą następującego polecenia:

$ hostName -i | Tr "" "\ n"

Moja sieć domowa korzysta z podsieci sieciowej 192.168.20.0/24. Tak więc adres IP mojego hosta KVM to 192.168.20.131. Inne adresy IP to prywatny mosty sieciowe hosta KVM.

Otwórz dowolny program klienta VNC i połącz się z adresem 192.168.20.131: 1.

Powinieneś zobaczyć okno instalacyjne Centos 8, jak pokazano na zrzucie ekranu poniżej. Możesz zainstalować CentOS 8 na maszynie wirtualnej KVM, jak normalnie.

Instaluję minimalną wersję serwera CentOS 8 do demonstracji w tym artykule.

Centos 8 jest instalowany w maszynie wirtualnej KVM Centos8-01, Jak widać na zrzucie ekranu poniżej. To może zająć trochę czasu.

Po zainstalowaniu CentOS 8 na maszynie wirtualnej kliknij Ponowne uruchomienie.

Maszyna wirtualna KVM Centos8-01 powinno być automatycznie wyłączone, jak widać na zrzucie ekranu poniżej.

$ sudo virsh lista -All

Zacząć Centos8-01 Maszyna wirtualna KVM z następującym poleceniem:

$ virsh start centos8-01

Teraz możesz połączyć się z Centos8-01 maszyna wirtualna od klienta VNC, jak wcześniej. Jak widać, minimalny serwer CentOS 8 działa dobrze w maszynie wirtualnej KVM.

Instalowanie serwera SSH na maszynie wirtualnej CentOS 8

Głównym celem tego artykułu jest połączenie z wirtualną maszyną CentOS 8 kVM za pośrednictwem SSH. Musisz mieć zainstalowany serwer SSH na maszynie wirtualnej CentOS 8 KVM, aby móc się z nim połączyć za pośrednictwem SSH.

Zainstaluj serwer OpenSsh na maszynie wirtualnej CentOS 8 KVM za pomocą następującego polecenia:

$ sudo dnf instaluj openSsh -server -y

Serwer OpenSSh powinien być teraz zainstalowany. W moim przypadku jest już zainstalowany.

Potwierdź, że Sshd Usługa jest działanie I włączony Z następującym poleceniem:

$ sudo Systemctl Status Sshd

Jeśli Sshd Usługa nie działa, możesz uruchomić ją z następującym poleceniem:

$ sudo systemctl start sshd

Jeśli Sshd Usługa jest wyłączona, możesz włączyć ją za pomocą następującego polecenia:

$ sudo systemctl włącz SSHD

Konfigurowanie zapory wirtualnej Centos 8

Musisz skonfigurować zaporę maszyny wirtualnej, aby umożliwić dostęp do portu SSH. W przeciwnym razie nie będziesz mógł połączyć się z maszyną wirtualną za pośrednictwem SSH, nawet jeśli wszystkie konfiguracje są w porządku.

Aby umożliwić SSH dostęp do maszyny wirtualnej KVM Centos8-01, Uruchom następujące polecenie:

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

Aby zmienia się zapory ogniowa, uruchom następujące polecenie:

$ sudo firewall-cmd-odpowiadanie

Metoda 1: Dostęp do maszyn wirtualnych za pośrednictwem tunelowania SSH

Domyślnie KVM używa prywatnego mostu sieciowego domyślny do tworzenia sieci wirtualnych. Podsieta adresu IP mostu sieci prywatnej KVM domyślny nie jest dostępny z sieci domowej. Jest dostępny tylko z hosta KVM. Tak więc, do SSH do wirtualnej maszyny CentOS 8 KVM z innego komputera (w sieci domowej), musisz ominąć połączenie za pośrednictwem hosta KVM. Nazywa się to tunelingiem SSH i działa podobne do VPN.

Aby tunelowanie SSH działało, Twój host KVM musi mieć zainstalowany serwer SSH i musisz mieć dostęp do hosta KVM.

Jeśli Twój host KVM działa CentOS 8, możesz zainstalować serwer OpenSsh na hoście KVM za pomocą następującego polecenia:

$ sudo dnf instaluj openSsh -server -y

Jeśli Twój host KVM działa Ubuntu 20.04 LTS, a następnie możesz zainstalować serwer OpenSSH na hoście KVM za pomocą następującego polecenia:

$ sudo apt install openSsh -server -y

Potwierdź, że Sshd Usługa jest działanie I włączony Z następującym poleceniem:

$ sudo Systemctl Status Sshd

Jeśli Sshd Usługa nie działa, możesz uruchomić ją z następującym poleceniem:

$ sudo systemctl start sshd

Jeśli Sshd Usługa jest wyłączona, możesz włączyć ją za pomocą następującego polecenia:

$ sudo systemctl włącz SSHD

Być może będziesz musiał skonfigurować zaporę zapory hosta KVM, aby umożliwić SSH dostęp do niego.

Jeśli Twój host KVM korzysta z systemu operacyjnego CentOS 8, uruchom następujące polecenie, aby skonfigurować zaporę ogniową:

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

Aby zmiany zaczęły się obowiązywać, uruchom następujące polecenie:

$ sudo firewall-cmd-odpowiadanie

Jeśli Twój host KVM używa Ubuntu 20.04 System operacyjny LTS, uruchom następujące polecenie, aby skonfigurować zaporę ogniową:

$ sudo ufw pozwól ssh

Aby zmiany zaczęły się obowiązywać, uruchom następujące polecenie:

$ sudo ufw przeładowanie

Twoja maszyna wirtualna CentOS 8 KVM Centos8-01 może być wyłączone.

$ sudo virsh lista -All

W takim przypadku możesz uruchomić maszynę wirtualną za pomocą następującego polecenia:

$ sudo virsh start centos8-01

Połącz się z maszyną wirtualną CentOS 8 za pomocą klienta VNC i uruchom następujące polecenie na maszynie wirtualnej, aby znaleźć jej prywatny adres IP:

$ hostName -i

W moim przypadku prywatny adres IP mojej maszyny wirtualnej CentOS 8 KVM 192.168.122.89. To może być dla Ciebie inne.

Znajdź adres IP swojego hosta KVM za pomocą następującego polecenia:

$ hostName -i | Tr "" "\ n"

W moim przypadku adres IP to 192.168.20.131. Wiem to, ponieważ moja sieć domowa korzysta z podsieci 192.168.20.0/24.

Aby zrobić tunel do wirtualnej maszyny Centos 8 KVM za pomocą hosta KVM, uruchom następujące polecenie z komputera:

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

Tutaj -L Opcja służy do informowania SSH, aby przeprowadzić lokalne przekazywanie portów.

To przekazuje wszystkie żądania pochodzące z Lokalny Gospodarz Port 2200 do portu 22 z maszyny wirtualnej Centos 8 KVM, która ma prywatny adres IP 192.168.122.89.

Ponieważ komputer nie ma bezpośredniego dostępu do podsieci sieciowej maszyny wirtualnej CentOS 8 KVM 192.168.122.0/24, Tuneluje żądanie za pośrednictwem hosta KVM, który ma bezpośredni dostęp do tej podsieci sieciowej.

Tutaj, 192.168.20.131 to adres IP hosta KVM i Shovon to nazwa użytkownika logowania SSH hosta KVM.

Po uruchomieniu polecenia możesz zostać zadaje następujące pytanie. Typ Tak i naciśnij .

Wpisz hasło użytkownika logowania hosta KVM i naciśnij .

Powinieneś teraz być podłączony do hosta KVM za pośrednictwem SSH.

Teraz możesz ssh do wirtualnej maszyny Centos 8 kvm na Lokalny Gospodarz Port 2200 następująco:

$ ssh shovon@localhost -p 2200

Tutaj, Shovon to nazwa logowania maszyny wirtualnej CentOS 8 kVM.

Po uruchomieniu polecenia możesz zostać zadaje następujące pytanie. Typ Tak i naciśnij .

Wpisz hasło użytkownika logowania twojego maszyny wirtualnej CentOS 8 KVM i naciśnij .

Powinieneś być teraz podłączony do wirtualnej maszyny CentOS 8 KVM działającej na hostie KVM przez SSH, jak widać na zrzucie ekranu poniżej.

Możesz również uruchomić dowolne polecenie, które chcesz tutaj,.

Metoda 2: Dostęp do maszyn wirtualnych za pośrednictwem KVM Public Network Bridge

Jeśli chcesz pełny dostęp do wirtualnej maszyny CentOS 8 KVM, możesz skonfigurować publiczny mostek sieciowy KVM. Publiczny mostek sieci KVM działa jako przełącznik sieciowy. Twoja maszyna wirtualna CentOS 8 KVM otrzyma adres IP z tego samego serwera DHCP co sieć domowa i, w tej samej sieci, podsieci co Twoja sieć domowa. Będzie dostępny z każdego urządzenia podłączonego do sieci domowej.

Już stworzyłem mostek sieci publicznej KVM publiczny i skonfigurowałem moją maszynę wirtualną Centos 8 KVM do korzystania z mostu. Wyjaśniam proces tworzenia mostu sieci publicznej KVM w moim artykule Jak utworzyć interfejs mostu sieciowego CentOS 8 KVM. Pamiętaj, aby to sprawdzić.

Po utworzeniu mostu sieci publicznej KVM musisz skonfigurować wirtualną maszynę CentOS 8, aby korzystać z mostu. Przed skonfigurowaniem maszyny wirtualnej CentOS 8 Centos8-01, Sprawdź, czy maszyna wirtualna CENTOS 8 KVM działa z następującym poleceniem:

$ sudo virsh lista -All

Jak widać, maszyna wirtualna Centos 8 KVM Centos8-01 biegnie. Powinniśmy to zatrzymać przed skonfigurowaniem.

Możesz wyłączyć wirtualną maszynę CentOS 8 KVM Centos8-01 Z następującym poleceniem:

$ sudo virsh shutdown Centos8-01

Jak widać, wirtualna maszyna CentOS 8 KVM jest wyłączona.

$ sudo virsh lista -All

Domyślnie maszyna wirtualna CentOS 8 KVM używa domyślny Prywatna sieć mostu. Skonfiguruję go do użycia publiczny Most sieciowy, który już stworzyłem.

$ sudo virsh net-list-wszyscy

Aby edytować konfigurację maszyny wirtualnej CentOS 8 KVM, uruchom następujące polecenie:

$ sudo virsh edit Centos8-01

Znaleźć interfejs sekcja, jak zaznaczono na zrzucie ekranu poniżej. Zmienić źródło sieć z domyślny Do publiczny.

NOTATKA: Plik konfiguracyjny otwiera się domyślnie z edytorem tekstu VI. Aby edytować plik konfiguracyjny w vi, naciśnij I iść do WSTAWIĆ tryb. Aby zapisać plik konfiguracyjny, naciśnij , Wpisz : WQ!, a następnie naciśnij .

Konfiguracja maszyny wirtualnej powinna zostać zmieniona.

Uruchom maszynę wirtualną Centos 8 KVM z następującym poleceniem:

$ sudo virsh start centos8-01

Teraz połącz się z wirtualną maszyną CentOS 8 KVM za pomocą klienta VNC. Sprawdź adres IP maszyny wirtualnej za pomocą następującego polecenia:

$ hostName -i

Jak widać, adres IP jest 192.168.20.133. Ten adres IP został dostarczony przez serwer DHCP mojej sieci domowej. To jest adres IP podsieci sieciowej 192.168.20.0/24, która jest podsiecią mojej sieci domowej.

Teraz możesz połączyć się z wirtualną maszyną CentOS 8 KVM z dowolnego komputera podłączonego do sieci domowej, w następujący sposób:

$ ssh [email protected]

Tutaj, Shovon to nazwa logowania maszyny wirtualnej CentOS 8 kVM.

Po uruchomieniu polecenia możesz zostać zadaje następujące pytanie. Typ Tak i naciśnij .

Wpisz hasło użytkownika logowania twojego maszyny wirtualnej CentOS 8 KVM i naciśnij .

Powinieneś być teraz podłączony do wirtualnej maszyny CentOS 8 KVM działającej na hostie KVM przez SSH, jak widać na zrzucie ekranu poniżej.

Możesz również uruchomić dowolne polecenie, które chcesz tutaj,.

Wniosek

W tym artykule pokazano, jak utworzyć maszynę wirtualną KVM Centos 8 i połączyć się z maszyną wirtualną za pośrednictwem SSH. Gdy wirtualna maszyna CentOS 8 kVM nie jest dostępna z sieci domowej (używa prywatnego mostu sieciowego), musisz użyć tunelowania SSH do połączenia z maszyną wirtualną KVM za pomocą SSH. Gdy chcesz pełny dostęp do wirtualnej maszyny CentOS 8 KVM, możesz skonfigurować mostek sieciowy i skonfigurować maszynę wirtualną do korzystania z mostu. W ten sposób Twoja maszyna wirtualna KVM może być dostępna z całej sieci domowej.