КВМ

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 на офіційному веб-сайті CentOS ISO.

Після завантаження сторінки натисніть на найближче дзеркало CentOS 8.

Повинні бути перелічені всі доступні зображення установки CentOS 8 ISO.

Для цієї статті я завантажу образ встановлення NetBoot 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 \
--ОС 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 \
--завантажити cdrom, hd

Ім'я віртуальної машини буде centos8-01.

Тип операційної системи: Linux і варіант є centos8.

Оперативна пам’ять (оперативна пам’ять) віртуальної машини складатиме 2048 МБ або 2 ГБ.

Віртуальний диск віртуальної машини буде збережено в / kvm / disk / centos8-01.img файл. Віртуальний диск про 10 ГБ за розміром і форматом 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 --всі

Запустіть centos8-01 Віртуальна машина KVM з наступною командою:

$ virsh start centos8-01

Тепер ви можете підключитися до centos8-01 віртуальна машина від клієнта VNC, як і раніше. Як бачите, мінімальний сервер CentOS 8 працює нормально у віртуальній машині KVM.

Встановлення SSH-сервера на віртуальній машині CentOS 8

Основною метою цієї статті є підключення до віртуальної машини CentOS 8 KVM через SSH. На віртуальній машині CentOS 8 KVM у вас повинен бути встановлений SSH-сервер, щоб мати можливість підключатися до нього через SSH.

Встановіть сервер OpenSSH на віртуальній машині CentOS 8 KVM за допомогою такої команди:

$ sudo dnf встановити openssh-server -y

Тепер слід встановити сервер OpenSSH. У моєму випадку він уже встановлений.

Переконайтеся, що sshd послуга є біг і увімкнено з наступною командою:

$ sudo systemctl статус sshd

Якщо sshd служба не запущена, її можна запустити за допомогою наступної команди:

$ sudo systemctl start 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 start 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 allow ssh

Щоб зміни набрали чинності, виконайте таку команду:

$ sudo ufw перезавантажити

Ваша віртуальна машина CentOS 8 KVM centos8-01 може бути вимкнено.

$ sudo virsh list --всі

Якщо це так, ви можете запустити віртуальну машину за допомогою такої команди:

$ 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 шовон @ 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

Якщо вам потрібен повний доступ до вашої віртуальної машини 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 --всі

За замовчуванням віртуальна машина 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 можна отримати доступ з усієї домашньої мережі.

Встановіть найновіший емулятор Dolphin для Gamecube & Wii на Linux
Емулятор Dolphin дозволяє грати у вибрані вами ігри Gamecube та Wii на персональних комп’ютерах Linux (ПК). Будучи вільно доступним і відкритим ігров...
Як використовувати GameConqueror Cheat Engine в Linux
Стаття висвітлює посібник із використання механізму читів GameConqueror в Linux. Багато користувачів, які грають у ігри в Windows, часто використовуют...
Кращі емулятори ігрової консолі для Linux
У цій статті буде перелічено популярне програмне забезпечення для емуляції ігрової консолі, доступне для Linux. Емуляція - це рівень сумісності програ...