Предполагая, что вы говорите о ключах SSH, вы добавляете открытый ключ к учетной записи администратора экземпляра, а не закрытый ключ.
Это делается cloud-init. Обычно это происходит из-за того, что Openstack заполняет службу метаданных для экземпляра объектом JSON «данные поставщика», который включает в себя открытый ключ. Экземпляр может получить это через локальный IP-адрес.
Когда экземпляр попадает в соответствующую точку запуска системы, он запускает задание cloud-init. Это выполнит различные задачи инициализации в зависимости от конфигурационных файлов cloud-init в вашем образе. Обычно он создает учетную запись администратора и записывает (или добавляет) открытый ключ в данные поставщика в файл ~/.ssh/authorized_keys
.
Для получения дополнительной информации см. Документацию cloud-init , документацию Openstack для построения образа Ubuntu .