KVM

SSH с локальной машины на виртуальную через KVM и гостевую систему CentOS 8

SSH с локальной машины на виртуальную через KVM и гостевую систему CentOS 8
По умолчанию виртуальные машины 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.

Я скачу установочный ISO-образ NetBoot CentOS 8 для этой статьи. Чтобы установить CentOS 8 на виртуальную машину KVM с помощью установочного образа NetBoot ISO, виртуальной машине требуется подключение к Интернету.

Если вы не хотите настраивать сеть при установке CentOS 8 на виртуальную машину, выберите либо минимальный или DVD ISO-образ установки CentOS 8.

Щелкните правой кнопкой мыши (ПКМ) по ISO-файлу, чтобы загрузить и скопировать ссылку на ISO-файл.

Загрузите установочный образ CentOS 8 ISO, используя wget, следующим образом:

$ sudo wget http: // зеркало.дхакачом.com / centos /
8.2.2004 / isos / x86_64 / CentOS-8.2.2004-x86_64-загрузка.iso

wget должен начать загрузку ISO-образа CentOS 8. На выполнение потребуется время.

На этом этапе должен быть загружен ISO-образ CentOS 8.

Образ CentOS 8 ISO доступен в / kvm / iso / каталог, как вы можете видеть на скриншоте ниже.

$ ls -lh

После загрузки ISO-образа CentOS создайте виртуальную машину KVM с помощью следующей команды:

$ sudo virt-install --name centos8-01 \
--ОС типа Linux \
--os-вариант centos8 \
--баран 2048 \
--диск / квм / диск / centos8-01.img, устройство = диск, шина = virtio, размер = 10, формат = qcow2 \
--графика vnc, listen = 0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom / kvm / iso / CentOS-8.2.2004-x86_64-загрузка.iso \
--загрузочный cdrom, hd

Имя виртуальной машины будет centos8-01.

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

ОЗУ (оперативная память) виртуальной машины будет 2048 МБ или 2 ГБ.

Виртуальный диск виртуальной машины будет сохранен в / квм / диск / centos8-01.img файл. Виртуальный диск о 10 ГБ по размеру и формату QCOW2 (QEMU Copy-On-Write v2).

Виртуальная машина будет доступна через протокол удаленного рабочего стола VNC (виртуальные сетевые вычисления), а сервер VNC будет прослушивать все доступные сетевые интерфейсы, настроенные на вашем KVM-узле.

Хост KVM не будет автоматически пытаться подключиться к виртуальной машине после создания виртуальной машины. Виртуальная машина продолжит работу в фоновом режиме.

Используйте полную виртуализацию для виртуальной машины. Это улучшит работу виртуальных машин.

Используйте ранее загруженный ISO-образ CentOS 8 в качестве виртуального CD / DVD-ROM виртуальной машины. Используется для установки CentOS 8 на виртуальную машину.

Устанавливает порядок загрузки виртуальной машины. Первая загрузочная запись - это виртуальный CD / DVD ROM, а затем виртуальный жесткий диск. Таким образом, виртуальная машина сможет загрузиться с ISO-образа CentOS 8 и установить 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 --permanent

Чтобы изменения брандмауэра вступили в силу, выполните следующую команду:

$ 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. У вас должен быть установлен SSH-сервер на вашей виртуальной машине CentOS 8 KVM, чтобы иметь возможность подключаться к ней через SSH.

Установите сервер OpenSSH на виртуальную машину CentOS 8 KVM с помощью следующей команды:

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

Теперь сервер OpenSSH должен быть установлен. В моем случае он уже установлен.

Подтвердите, что sshd услуга Бег а также включено с помощью следующей команды:

$ sudo systemctl status 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 установить openssh-server -y

Подтвердите, что sshd услуга Бег а также включено с помощью следующей команды:

$ sudo systemctl status 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 разрешить 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 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.

Теперь вы можете подключиться к виртуальной машине CentOS 8 KVM по SSH на 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 -all

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

Вы можете выключить виртуальную машину CentOS 8 KVM centos8-01 с помощью следующей команды:

$ sudo virsh выключение centos8-01

Как видите, виртуальная машина CentOS 8 KVM выключена.

$ sudo virsh list - все

По умолчанию виртуальная машина CentOS 8 KVM использует По умолчанию мост частной сети. Я настрою его на использование общественный сетевой мост я уже создал.

$ sudo virsh net-list - все

Чтобы изменить конфигурацию виртуальной машины CentOS 8 KVM, выполните следующую команду:

$ sudo virsh редактировать centos8-01

Найти интерфейс раздел, как отмечено на скриншоте ниже. Изменить источник сеть из По умолчанию к общественный.

ПРИМЕЧАНИЕ: По умолчанию файл конфигурации открывается в текстовом редакторе Vi. Чтобы отредактировать файл конфигурации в Vi, нажмите я идти в ВСТАВЛЯТЬ Режим. Чтобы сохранить файл конфигурации, нажмите , печатать : 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 будет доступна из всей вашей домашней сети.

Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...