Product SiteDocumentation Site

25.5. Ключи для доступа по SSH

Сервер управления OpenNebula (Front-end) должен иметь беспарольный SSH-доступ ко всем узлам гипервизора от имени пользователя oneadmin. Для корректной работы OpenNebula используются следующие типы соединений:
  • от сервера управления к самому серверу управления;
  • от сервера управления к каждому узлу гипервизора;
  • от сервера управления к узлу гипервизора с последующим подключением к другому узлу гипервизора (для операций миграции ВМ);
  • от сервера управления к узлу гипервизора с последующим подключением обратно к серверу управления (для операций копирования данных).

Важно

Необходимо убедиться, что сервер управления и все узлы гипервизора могут подключаться друг к другу по SSH без ручного вмешательства (без запроса пароля и подтверждения ключей).
Для включения беспарольных подключений необходимо распространить открытый SSH-ключ пользователя oneadmin со всех машин в файл /var/lib/one/.ssh/authorized_keys на всех узлах инфраструктуры.
При установке сервера управления OpenNebula автоматически генерируется пара SSH-ключей для пользователя oneadmin (/var/lib/one/.ssh/id_rsa и /var/lib/one/.ssh/id_rsa.pub), а также открытый ключ добавляется в файл /var/lib/one/.ssh/authorized_keys.

Примечание

На узлах виртуализации пара SSH-ключей не генерируется автоматически. При необходимости ключи можно создать вручную, выполнив команду:
$ ssh-keygen -t rsa -f /var/lib/one/.ssh/id_rsa -N ""

25.5.1. Управление списком доверенных узлов (known_hosts)

Необходимо подготовить и поддерживать актуальный список открытых SSH-ключей узлов (файл known_hosts), чтобы все взаимодействующие стороны могли идентифицировать друг друга без запроса подтверждения.
Файл располагается по пути /var/lib/one/.ssh/known_hosts. Для его создания и обновления используется команда ssh-keyscan, например:
$ ssh-keyscan <сервер_управления> <узел1> <узел2> <узел3> ... >> /var/lib/one/.ssh/known_hosts 
Команду следует выполнить от имени пользователя oneadmin на сервере управления, после чего полученный файл необходимо скопировать на все узлы гипервизора.

Примечание

Команду ssh-keyscan необходимо выполнять как для имён узлов, так и для их IP-адресов:
$ ssh-keyscan <IP-узел1> <hostname-узел1> ... >> /var/lib/one/.ssh/known_hosts 
Например:
$ ssh-keyscan 192.168.0.185 server 192.168.0.190 host-01 >> /var/lib/one/.ssh/known_hosts 

Важно

Файл known_hosts необходимо обновлять и распространять заново каждый раз, когда:
  • переустанавливается какой-либо узел;
  • SSH-ключи узла генерируются заново.