Глава 13. Удаленное управление виртуализированными гостевыми системами
В этой главе рассматривается удаленное управление виртуализированными гостевыми системами с помощью ssh
, TLS и SSL.
13.1. Удаленное управление с помощью SSH
Пакет ssh предоставляет зашифрованный сетевой протокол, который позволяет безопасно передавать управляющие функции удаленным серверам виртуализации. Ниже рассматривается управление удаленными машинами утилитой libvirt
по SSH-туннелю.Аутентификация осуществляется за счет использования общих ключей SSH и паролей или проверочных фраз, получаемых локальным агентом SSH. Доступная гостевым виртуальным системам консоль VNC также защищена SSH.
Обычно используется стандартная конфигурация SSH, поэтому нет необходимости в создании дополнительных правил межсетевого экрана для обеспечения доступа к управляющей службе или консоли VNC.
При организации удаленного управления виртуальными машинами следует принять во внимание следующие моменты относительно
SSH:
потребуются права root для доступа к удаленной машине для управления ее виртуальными машинами;
изначальный процесс настройки соединения может быть замедлен;
не существует стандарта или однозначного способа получения ключа пользователя на всех узлах и в гостях;
при значительном увеличении числа удаленных машин могут возникнуть сложности с использованием SSH.
Приведенные далее инструкции подразумевают, что вы начинаете работу с нуля, то есть ключи SSH еще не настроены.
Потребуется пара общих ключей в системе, где будет выполняться virt-manager
. Если ssh
уже настроен, этот шаг можно пропустить.
$ ssh-keygen -t rsa
Чтобы разрешить удаленную авторизацию, необходимо скопировать общий ключ на все удаленные машины, где выполняется libvirt
. Скопируйте файл $HOME/.ssh/id_rsa.pub
из системы, которая будет использоваться для удаленного управления:
$ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
После этого подключитесь к удаленной машине по ssh
и в режиме root добавьте полученный файл в список авторизованных ключей. Если этот список не существует, проверьте разрешения файла.
$ ssh root@узел
# mkdir /root/.ssh
# chmod go-rwx /root/.ssh
# cat /root/key-dan.pub >> /root/.ssh/authorized_keys
# chmod go-rw /root/.ssh/authorized_keys
libvirtd
предоставляет интерфейс для управления виртуальными машинами. Он должен работать на каждом удаленном узле, которым вы планируете управлять. Дополнительно, пакет kernel-xen
предъявляет отдельные требования к процессору и ядру.
$ ssh root@узел
# chkconfig libvirtd on
# service libvirtd start
После завершения настройки libvirtd
и SSH вы сможете обращаться к удаленным виртуальным машинам, управлять ими и обращаться к гостевым системам через VNC
.