Время от времени требуется подключаться к консоли виртуальной машины(ВМ), например для установки гостевой ОС или решения возникших проблем. zVirt предоставляет возможность подключится графической консоли при помощи протоколов SPICE или VNC из web-итерфейса администратора или пользователя. Но графическая консоль не всегда удобна, например в ситуациях ограниченной скорости интернет соединения или отсутствия графического окружения в виртуальной машине. В zVirt предоставляет возможность подключатся к текстовой последовательной консоли виртуальной машины. Но этот способ подключения требует небольших предварительных настроек.
Подключение осуществляется по SSH с использованием пары ключей. Менеджер виртуализации выступает в роли прокси-сервера подключения. Он обладает информацией о том на каком узле размещена виртуальная машина, и хранит ключи аутентификации. Сама последовательная консоль эмулируется по каналам VirtIO, с помощью драйвера VirtIO-serial (его необходимо установить в гостевую ОС).
Сперва необходимо подготовить виртуальную машину.
Нужно включить возможность подключения к последовательному порту виртуальной машины машины, по умолчанию эта опция отключена. Для этого следует изменить настройки ВМЖ: в разделе "Консоль" отметить пункт "Консольный порт VirtIO-Serial". Если графическая консоль для ВМ будет не нужна, то можно отметить пункт "Режим Healdless" в томже разделе "Консоль" настроек ВМ. Этот режим отключает графический адаптер ВМ и позволят сохранить небольшой объем оперативной памяти.

В гостевой операционной систем необходимо настроить параметры работы последовательного порта, для чего можно отредактировать файл /etc/default/grub добавив туда следующие строки
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Обновить конфигурацию grub c с помощью команды grub2-mkconfig -o [путь к файлу]/grub.cfg , для ВМ с BIOS команда будет выглядеть так
grub2-mkconfig -o /boot/grub2/grub.cfg
для UEFI путь к файлу зависит от дистибутива.
Вероятно, потребуется перезагрузка виртуальной машины.
Затем необходимо настроить доступ пользователя.
Для получения доступа к последовательной консоли, пользователь должен обладать одной из привилегий UserVmManager, SuperUser или UserInstanceManager для данной ВМ.
Аутентификация осуществляется при помощи пары ключей, если у вас их ещё нет, то команда ssh-keygen их создаст.
[user@utility ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /user/.ssh/id_rsa.
Your public key has been saved in /user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ERDB/2ry5azq70CosvgXZ2egtjqTIXwTl79YUDKEms+ user@utility.lab.example.com
The key's randomart image is:
+---[RSA 2048]----+
| .+=. |
| . o. |
| . +.. . |
| . + +.. . |
|. . o oSo . . |
|o.oE+ = o . . o .|
|.+.+ = = ... . o |
|o + o ..==. . |
| .o= .o*B=o |
+----[SHA256]-----+
По умолчанию публичный ключ будет расположен в файле ~/.ssh/id_rsa.pub
[user@utility ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCm3uKV2eTBUPN9Tgos70F8X401mA0l8738s5p4b3Nek1lWjPIlilSBGpKur/xE08+U6FPyLekuMk1sugqZ7osCs4GWk4PXbYKiV6iZIWiLBcrRTOb+lnugHHnKzGHyz2nGSH7CAolgVxalW4IA96ucuzzU0sbLvWIjHAy/UUd0di7ZLzsVnFm58lCp6ow1p3SGKsgevFo5IdDoPssfKPh8p422Ci4JM6m2uN6ABWo0fNJaPC/ZAXTz55xdD4rG9rMJzM6zjoBXZNgbl9sljWQokbUgu9lNVsRkSCsHJwSGOKenUh768PsEb+9ZKDp1jUdbL9l5yONB9yKa2T1qdqON user@utility.lab.example.com
Публичный ключ требуется добавить в настройки пользователя в web-итерфейсе администратора или пользователя. Для этого в верхнем правом углу web-интрефейса нажать на значок "торса пользователя" и выбрать пункт "Настройки".

В появившемся окне настроек, копировать и вставить публичный ключ в соответствующее поле

После того как все настройки произведены можно подключаться к последовательной консоли. SSH-прокси работает на менеджере на порте 2222 , команда подключения будет выглядеть следующим образом
ssh -t -p 2222 ovirt-vmconsole@FQDN-менеджера
Покажет список доступных ВМ для подключения и предложит сделать выбор
[user@utility ~]$ ssh -t -p 2222 ovirt-vmconsole@zvirtvm.lab.example.com
The authenticity of host '[zvirtvm.lab.example.com]:2222 ([172.25.200.24]:2222)' can't be established.
RSA key fingerprint is SHA256:WJk/0AAMt/r9JGVq4/JM6g5Xiw/O8yX/iXSUaL3WZoA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[zvirtvm.lab.example.com]:2222' (RSA) to the list of known hosts.
Available Serial Consoles:
00 09-host-a[eb946379-813a-48c4-bce9-3a5926505cec]
01 HostedEngine[238b9fce-0344-4796-9041-c5e79a7d09d8]
Please, enter the id of the Serial Console you want to connect to.
To disconnect from a Serial Console, enter the sequence: <Enter><~><.>
SELECT>
Так же можно подключится непосредственно к нужной ВМ c помощью опции "connect"
ssh -t -p 2222 ovirt-vmconsole@[FQDN-менеджера] connect --vm-id [ID ВМ]
ssh -t -p 2222 ovirt-vmconsole@[FQDN-менеджера] connect --vm-name [Имя ВМ]
например
[user@utility~]$ ssh -t -p 2222 ovirt-vmconsole@zvirtvm.lab.example.com connect --vm-name 09-utility
CentOS Linux 7 (Core)
Kernel 3.10.0-1160.21.1.el7.x86_64 on an x86_64
utility login:
Для выхода из консоли используется сочетание символов "~."