KVM

SSH от локална машина към виртуална чрез KVM и CentOS 8 Guest

SSH от локална машина към виртуална чрез KVM и CentOS 8 Guest
По подразбиране виртуалните машини KVM използват частни NAT мрежи, които са достъпни само от KVM хоста. Така че нямате достъп до виртуалните машини KVM от вашата домашна мрежа. За SSH във виртуални машини, работещи на вашия KVM хост, има два метода: SSH тунелиране и конфигуриране на публичен KVM мрежов мост. Тази статия ви показва как да SSH във виртуална машина KVM CentOS 8 от вашата домашна мрежа чрез SSH тунелиране и използване на публичен мост на KVM мрежа.

Предпоставки

За да изпробвате примерите в тази статия, трябва да имате инсталиран KVM на вашия компютър. Ако нямате инсталиран KVM на вашия компютър, можете да прочетете следните статии в LinuxHint.com за помощ при инсталиране на KVM на желаната от вас дистрибуция на Linux.

- Инсталирайте KVM на Ubuntu 20.04

- Инсталирайте KVM на CentOS 8

Създаване на виртуална машина CentOS 8 KVM

Този раздел ви показва как да създадете виртуална машина CentOS 8 KVM за тестване на SSH свързаност.

Първо изтеглете инсталационното изображение на CentOS 8 ISO. За да поддържате всички файлове / данни на виртуалната машина организирани, добре е да съхранявате ISO изображението в / kvm / iso / директория.

Придвижете се до / kvm / iso / директория със следната команда:

$ cd / kvm / iso

Можете да намерите връзката към инсталационното изображение на CentOS 8 ISO на официалния уебсайт на ISO на CentOS.

След като страницата се зареди, щракнете върху най-близкото огледало CentOS 8.

Всички налични инсталационни изображения на CentOS 8 ISO трябва да бъдат изброени.

За тази статия ще изтегля инсталационния образ на NetOS на ISO на CentOS 8. За да инсталирате CentOS 8 на виртуална машина KVM с помощта на инсталационния образ на NetBoot ISO, виртуалната машина изисква интернет връзка.

Ако не искате да конфигурирате мрежата, докато инсталирате CentOS 8 на виртуалната машина, изберете или минимална или DVD ISO инсталационен образ на CentOS 8.

Щракнете с десния бутон (RMB) върху ISO файла, за да изтеглите и копирате връзката на ISO файла.

Изтеглете инсталационното изображение CentOS 8 ISO с помощта на wget, както следва:

$ sudo wget http: // огледало.дакаком.com / centos /
8.2.2004 / isos / x86_64 / CentOS-8.2.2004-x86_64-зареждане.изо

wget трябва да започне да изтегля изображението CentOS 8 ISO. Ще отнеме известно време, за да завършите.

В този момент изображението CentOS 8 ISO трябва да бъде изтеглено.

Изображението CentOS 8 ISO е налично в / kvm / iso / директория, както можете да видите на екранната снимка по-долу.

$ ls -lh

След като CentOS ISO изображението бъде изтеглено, създайте KVM виртуална машина със следната команда:

$ sudo virt-install --name centos8-01 \
--os-type linux \
--os-вариант centos8 \
--овен 2048 \
--disk / kvm / disk / centos8-01.img, устройство = диск, шина = virtio, размер = 10, формат = qcow2 \
--графичен vnc, слушане = 0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom / kvm / iso / CentOS-8.2.2004-x86_64-зареждане.iso \
--boot cdrom, hd

Името на виртуалната машина ще бъде centos8-01.

Типът на операционната система е linux а вариантът е centos8.

Оперативната памет (памет с произволен достъп) на виртуалната машина ще бъде 2048 MB или 2 GB.

Виртуалният диск на виртуалната машина ще бъде запазен в / kvm / disk / centos8-01.img файл. Виртуалният диск е за 10 GB по размер и форматът е QCOW2 (QEMU Copy-On-Write v2).

Виртуалната машина ще бъде достъпна чрез протокол за отдалечен работен плот на VNC (Virtual Network Computing), а VNC сървърът ще слуша на всички налични мрежови интерфейси, конфигурирани на вашия KVM хост.

KVM хостът няма автоматично да се опитва да се свърже с виртуалната машина, след като виртуалната машина бъде създадена. Виртуалната машина ще продължи да работи във фонов режим.

Използвайте пълна виртуализация за виртуалната машина. Това ще направи виртуалните машини по-добри.

Използвайте CentOS 8 ISO изображение, изтеглено преди това като виртуален CD / DVD ROM на виртуалната машина. Това се използва за инсталиране на CentOS 8 на виртуалната машина.

Задава реда на зареждане на виртуалната машина. Първият запис за зареждане е виртуалният CD / DVD ROM и след това виртуалният твърд диск. И така, виртуалната машина ще може да стартира от CentOS 8 ISO образа и да инсталира CentOS 8 на твърдия диск.

Това са всички опции, от които се нуждаете, за да създадете KVM виртуална машина.

След като стартирате virt-install команда, KVM трябва да започне да създава виртуалната машина. Това може да отнеме известно време, в зависимост от конфигурацията на вашата виртуална машина.

В този момент трябва да се създаде виртуалната машина KVM.

Както можете да видите, новосъздадената виртуална машина centos8-01 бяга.

Сега можете да се свържете с виртуалната машина с помощта на всяка клиентска програма VNC и да инсталирате CentOS 8 върху нея. За да се свържете с виртуалната машина чрез VNC, трябва да знаете номера на порта на VNC на виртуалната машина.

За да намерите номера на порта на VNC на виртуалната машина KVM centos8-01, изпълнете следната команда:

$ virsh vncdisplay centos8-01

Както можете да видите, номерът на VNC порта на centos8-01 виртуалната машина е 1.

Ето, порт 0 означава пристанище 5900. По същия начин, порт 1 означава пристанище 5901, и така нататък.

Както можете да видите, виртуалната машина KVM centos8-01 работи на порт 5901 (: 1).

$ sudo netstat -tln

Ако вашият KVM хост работи с операционната система CentOS 8, можете да разрешите достъп до порт 5901 със следната команда:

$ sudo firewall-cmd --add-port = 5901 / tcp - перманентно

За да влязат в сила промените на защитната стена, изпълнете следната команда:

$ sudo firewall-cmd --reload

Ако вашият KVM хост изпълнява Ubuntu 20.04 LTS операционна система, можете да разрешите достъп до порт 5901 със следната команда:

$ sudo ufw позволяват 5901 / tcp

За да влязат в сила промените на защитната стена, изпълнете следната команда:

$ sudo ufw презареди

Намерете IP адреса на вашия KVM хост със следната команда:

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

Моята домашна мрежа използва мрежовата подмрежа 192.168.20.0/24. И така, IP адресът на моя KVM хост е 192.168.20.131. Другите IP адреси са частни мрежови мостове на KVM хоста.

Отворете всяка клиентска програма на VNC и се свържете с адреса 192.168.20.131: 1.

Трябва да видите прозореца за инсталиране на CentOS 8, както е показано на екранната снимка по-долу. Можете да инсталирате CentOS 8 на виртуалната машина KVM както обикновено.

Инсталирам минималната сървърна версия на CentOS 8 за демонстрацията в тази статия.

CentOS 8 се инсталира във виртуалната машина KVM centos8-01, както можете да видите на екранната снимка по-долу. Това може да отнеме известно време, за да завърши.

След като CentOS 8 бъде инсталиран на виртуалната машина, щракнете върху Рестартирайте.

Виртуалната машина KVM centos8-01 трябва да се изключи автоматично, както можете да видите на екранната снимка по-долу.

$ sudo virsh list --all

Стартирайте centos8-01 KVM виртуална машина със следната команда:

$ virsh старт centos8-01

Сега можете да се свържете с centos8-01 виртуална машина от VNC клиент, както преди. Както можете да видите, минималният сървър CentOS 8 работи добре във виртуалната машина KVM.

Инсталиране на SSH сървър на виртуалната машина CentOS 8

Основната цел на тази статия е да се свържете с виртуална машина CentOS 8 KVM чрез SSH. Трябва да имате инсталиран SSH сървър на вашата виртуална машина CentOS 8 KVM, за да можете да се свържете с него чрез SSH.

Инсталирайте сървъра OpenSSH на вашата виртуална машина CentOS 8 KVM със следната команда:

$ sudo dnf инсталира openssh-server -y

Вече трябва да се инсталира сървърът OpenSSH. В моя случай той вече е инсталиран.

Потвърдете, че sshd услугата е бягане и активиран със следната команда:

$ sudo systemctl статус sshd

Ако sshd услугата не работи, можете да я стартирате със следната команда:

$ sudo systemctl стартира sshd

Ако sshd услугата е деактивирана, можете да я активирате със следната команда:

$ sudo systemctl активира sshd

Конфигуриране на защитната стена на виртуалната машина CentOS 8

Трябва да конфигурирате защитната стена на виртуалната машина, за да разрешите достъп до SSH порта. В противен случай няма да можете да се свържете с виртуалната машина чрез SSH, дори ако всички конфигурации са наред.

За да разрешите SSH достъп до виртуалната машина KVM centos8-01, изпълнете следната команда:

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

За да влязат в сила промените на защитната стена, изпълнете следната команда:

$ sudo firewall-cmd --reload

Метод 1: Достъп до виртуални машини чрез SSH тунелиране

По подразбиране KVM използва моста на частната мрежа по подразбиране за работа в мрежа на виртуалните машини. Подмрежата на IP адреса на моста на частната мрежа на KVM по подразбиране не е достъпен от домашна мрежа. Достъпен е само от KVM хост. Така че, за да SSH във вашата виртуална машина CentOS 8 KVM от друг компютър (във вашата домашна мрежа), трябва да заобиколите връзката чрез KVM хост. Това се нарича SSH тунелиране и работи подобно на VPN.

За да работи SSH тунелът, вашият KVM хост трябва да има инсталиран SSH сървър и трябва да имате SSH достъп до KVM хоста.

Ако вашият KVM хост работи с CentOS 8, тогава можете да инсталирате сървъра OpenSSH на вашия KVM хост със следната команда:

$ sudo dnf инсталира openssh-server -y

Ако вашият KVM хост работи с Ubuntu 20.04 LTS, след това можете да инсталирате OpenSSH сървъра на вашия KVM хост със следната команда:

$ sudo apt install openssh-server -y

Потвърдете, че sshd услугата е бягане и активиран със следната команда:

$ sudo systemctl статус sshd

Ако sshd услугата не работи, можете да я стартирате със следната команда:

$ sudo systemctl стартира sshd

Ако sshd услугата е деактивирана, можете да я активирате със следната команда:

$ sudo systemctl активира sshd

Може да се наложи да конфигурирате защитната стена на вашия KVM хост, за да разрешите SSH достъп до него.

Ако вашият KVM хост използва операционната система CentOS 8, изпълнете следната команда, за да конфигурирате защитната стена:

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

За да влязат в сила промените, изпълнете следната команда:

$ sudo firewall-cmd --reload

Ако вашият KVM хост използва Ubuntu 20.04 LTS операционна система, изпълнете следната команда, за да конфигурирате защитната стена:

$ sudo ufw позволи ssh

За да влязат в сила промените, изпълнете следната команда:

$ sudo ufw презареди

Вашата виртуална машина CentOS 8 KVM centos8-01 може да се изключи.

$ sudo virsh list --all

Ако случаят е такъв, можете да стартирате виртуалната машина със следната команда:

$ sudo virsh start centos8-01

Свържете се с виртуалната си машина CentOS 8 с VNC клиент и изпълнете следната команда на виртуалната машина, за да намерите нейния частен IP адрес:

$ hostname -I

В моя случай частният IP адрес на моята виртуална машина CentOS 8 KVM е 192.168.122.89. Това може да е различно за вас.

Намерете IP адреса на вашия KVM хост със следната команда:

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

В моя случай IP адресът е 192.168.20.131. Знам това, защото домашната ми мрежа използва подмрежата 192.168.20.0/24.

За да направите тунел към виртуалната машина CentOS 8 KVM чрез KVM хоста, изпълнете следната команда от вашия компютър:

$ ssh -L 2200: 192.168.122.89:22 shovon @ 192.168.20.131

Ето, -L опция се използва, за да се каже на SSH да извърши локално пренасочване на портове.

Това ще препрати всички искания, идващи от localhost пристанище 2200 към порт 22 на виртуалната машина CentOS 8 KVM, която има частен IP адрес 192.168.122.89.

Тъй като компютърът няма пряк достъп до мрежовата подмрежа на виртуалната машина CentOS 8 KVM 192.168.122.0/24, той тунелира заявката през KVM хоста, който има директен достъп до тази мрежова подмрежа.

Тук, 192.168.20.131 е IP адресът на KVM хоста и шовон е потребителското име за SSH вход на KVM хоста.

След като изпълните командата, може да ви бъде зададен следният въпрос. Тип да и натиснете .

Въведете паролата на потребителя за вход на вашия KVM хост и натиснете .

Вече трябва да сте свързани към KVM хоста чрез SSH.

Сега можете да SSH във вашата виртуална машина CentOS 8 KVM на localhost пристанище 2200 както следва:

$ ssh shovon @ localhost -p 2200

Тук, шовон е потребителското име за виртуална машина CentOS 8 KVM.

След като изпълните командата, може да ви бъде зададен следният въпрос. Тип да и натиснете .

Въведете паролата на потребителя за вход на вашата виртуална машина CentOS 8 KVM и натиснете .

Вече трябва да сте свързани към виртуалната машина CentOS 8 KVM, работеща на вашия KVM хост чрез SSH, както можете да видите на екранната снимка по-долу.

Тук можете да изпълните всяка команда, която искате.

Метод 2: Достъп до виртуални машини чрез KVM Public Network Bridge

Ако искате пълен достъп до вашата виртуална машина CentOS 8 KVM, тогава можете да конфигурирате публичен KVM мрежов мост. Публичен мрежов мост KVM действа като мрежов комутатор. Вашата виртуална машина CentOS 8 KVM ще получи IP адрес от същия DHCP сървър като вашата домашна мрежа и, в същата мрежа, подмрежа като вашата домашна мрежа. Така че, той ще бъде достъпен от всяко устройство, свързано към вашата домашна мрежа.

Вече създадох мост за обществена мрежа KVM публично и конфигурирах моята виртуална машина CentOS 8 KVM да използва моста. Обяснявам процеса на създаване на моста за обществена мрежа KVM в статията си Как да създам CentOS 8 KVM мрежов мостов интерфейс. Не забравяйте да го проверите.

След като създадете мост за обществена мрежа KVM, трябва да конфигурирате виртуалната си машина CentOS 8, за да използвате моста. Преди да конфигурирате вашата виртуална машина CentOS 8 centos8-01, проверете дали CentOS 8 KVM виртуалната машина работи със следната команда:

$ sudo virsh list -всички

Както можете да видите, виртуалната машина CentOS 8 KVM centos8-01 бяга. Трябва да го спрем, преди да го конфигурираме.

Можете да изключите вашата виртуална машина CentOS 8 KVM centos8-01 със следната команда:

$ sudo virsh shutdown centos8-01

Както можете да видите, виртуалната машина CentOS 8 KVM е изключена.

$ sudo virsh list --all

По подразбиране виртуалната машина CentOS 8 KVM използва по подразбиране частен мрежов мост. Ще го конфигурирам да използва публично мрежов мост, който вече съм създал.

$ sudo virsh net-list --all

За да редактирате конфигурацията на виртуалната машина CentOS 8 KVM, изпълнете следната команда:

$ sudo virsh редактиране centos8-01

Намери интерфейс раздел, както е отбелязано на екранната снимка по-долу. Променете източник мрежа от по подразбиране да се публично.

ЗАБЕЛЕЖКА: Конфигурационният файл се отваря с текстовия редактор Vi по подразбиране. За да редактирате конфигурационния файл в Vi, натиснете i да отидеш до ПОСТАВЕТЕ режим. За да запазите конфигурационния файл, натиснете , напишете в : wq!, и след това натиснете .

Конфигурацията на виртуалната машина сега трябва да бъде променена.

Стартирайте виртуалната машина CentOS 8 KVM със следната команда:

$ sudo virsh start centos8-01

Сега се свържете с вашата виртуална машина CentOS 8 KVM с помощта на VNC клиент. Проверете IP адреса на виртуалната машина със следната команда:

$ hostname -I

Както можете да видите, IP адресът е 192.168.20.133. Този IP адрес е предоставен от DHCP сървъра на домашната ми мрежа. Това е IP адрес на мрежовата подмрежа 192.168.20.0/24, която е подмрежата на домашната ми мрежа.

Сега можете да се свържете с виртуалната машина CentOS 8 KVM от всеки компютър, свързан към вашата домашна мрежа, както следва:

$ ssh shovon @ 192.168.20.133

Тук, шовон е потребителското име за виртуална машина CentOS 8 KVM.

След като изпълните командата, може да ви бъде зададен следният въпрос. Тип да и натиснете .

Въведете паролата на потребителя за вход на вашата виртуална машина CentOS 8 KVM и натиснете .

Вече трябва да сте свързани към виртуалната машина CentOS 8 KVM, работеща на вашия KVM хост чрез SSH, както можете да видите на екранната снимка по-долу.

Тук можете да изпълните всяка команда, която искате.

Заключение

Тази статия ви показа как да създадете виртуална машина KVM CentOS 8 и да се свържете с виртуалната машина чрез SSH. Когато виртуалната машина CentOS 8 KVM не е достъпна от домашната мрежа (използва частен мрежов мост), трябва да използвате SSH тунелиране, за да се свържете с KVM виртуалната машина с помощта на SSH. Когато искате пълен достъп до виртуалната машина CentOS 8 KVM, можете да настроите публичен мрежов мост и да конфигурирате виртуалната машина да използва моста. По този начин вашата виртуална машина KVM може да бъде достъпна от цялата ви домашна мрежа.

Как да използвам Xdotool за стимулиране на кликвания и натискания на мишката в Linux
Xdotool е безплатен инструмент с команден ред с отворен код за симулиране на щраквания и натискания на мишката. Тази статия ще обхване кратко ръководс...
Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...