Исправление проблемы "Canonical LXD Authentication failed" в Cockpit

Дата: 2026-01-10
Проблема: "Canonical LXD Authentication failed" / "NetworkError when attempting to fetch resource" в Cockpit

Описание проблемы

При попытке доступа к LXD контейнерам через интерфейс Cockpit появляется ошибка:
- "Canonical LXD Authentication failed"
- "NetworkError when attempting to fetch resource"

Причина

В Ubuntu 24.04 пакет cockpit-lxd был удален из репозиториев. Это означает, что Cockpit не может подключиться к LXD, так как отсутствует плагин для интеграции.

Технические детали

  • Cockpit версия: 314 (из репозиториев Ubuntu 24.04)
  • LXD версия: 6.6 (установлен через snap)
  • Проблема: cockpit-lxd пакет недоступен в apt репозиториях

Решение

Автоматическое исправление (рекомендуется)

# Перейти в директорию проекта
cd /home/cdto/DENKART

# Запустить скрипт исправления
sudo ./scripts/fix-cockpit-lxd-auth.sh

Скрипт автоматически:
1. Проверит установку LXD и Cockpit
2. Попытается установить cockpit-lxd (если доступен)
3. Проверит права доступа пользователя к LXD
4. Проверит доступность Unix socket
5. Перезапустит Cockpit (если необходимо)

Ручное решение

Вариант 1: Проверка и установка cockpit-lxd (если доступен)

# Обновление списка пакетов
sudo apt update

# Поиск cockpit-lxd
apt-cache search cockpit-lxd

# Если найден, установка
sudo apt install -y cockpit-lxd

# Перезапуск Cockpit
sudo systemctl restart cockpit.socket

Примечание: В Ubuntu 24.04 пакет скорее всего не будет найден.

Вариант 2: Проверка прав доступа к LXD

# Проверка группы пользователя
groups $USER

# Если пользователь не в группе lxd, добавление
sudo usermod -aG lxd $USER

# Применение изменений группы (требуется перелогин)
newgrp lxd

# Или просто перелогиниться

Вариант 3: Использование LXD из командной строки

LXD доступен через команды lxc, даже если Cockpit не может подключиться:

# Список контейнеров
lxc list

# Информация о контейнере
lxc info BBB-CONT22-1

# Выполнение команд в контейнере
lxc exec BBB-CONT22-1 bash

# Управление контейнерами
lxc start BBB-CONT22-1
lxc stop BBB-CONT22-1
lxc restart BBB-CONT22-1

Вариант 4: Использование LXD через HTTPS API

LXD доступен через HTTPS API на порту 8443:

# Проверка доступности API
curl -k https://localhost:8443/1.0

# Использование требует клиентского сертификата
# Для локального доступа рекомендуется использовать Unix socket

Вариант 5: Установка cockpit-lxd из альтернативного источника

ВНИМАНИЕ: Это продвинутый метод и не рекомендуется без понимания последствий.

# Добавление репозитория из Ubuntu 23.10 (НЕ рекомендуется)
# Это может привести к конфликтам зависимостей

# Вместо этого рассмотрите установку из исходников
# или использование альтернативных инструментов управления LXD

Проверка решения

1. Проверка работы LXD из командной строки

# Список контейнеров
lxc list

# Должен показать все контейнеры без ошибок

2. Проверка Cockpit

  1. Откройте Cockpit: https://192.168.1.112:9090
  2. Войдите с учетными данными
  3. Проверьте раздел LXD (если cockpit-lxd установлен)
  4. Если плагин не установлен, контейнеры не будут отображаться в интерфейсе

3. Проверка логов

# Логи Cockpit
sudo journalctl -u cockpit.service -n 50 | grep -i lxd

# Логи LXD
sudo journalctl -u snap.lxd.daemon -n 50

# Логи с ошибками аутентификации
sudo journalctl -u cockpit.service -n 100 | grep -i -E "auth|error|lxd"

Альтернативные решения

Использование командной строки

LXD полностью функционален через командную строку. Все операции можно выполнять через lxc команды:

# Основные команды
lxc list                    # Список контейнеров
lxc info <name>             # Информация о контейнере
lxc exec <name> <command>   # Выполнение команды
lxc start/stop/restart <name>  # Управление состоянием
lxc snapshot <name>         # Создание снимка
lxc config edit <name>      # Редактирование конфигурации

Использование LXD Web UI (если доступен)

LXD 6.x может иметь встроенный веб-интерфейс. Проверьте документацию LXD для активации.

Использование альтернативных инструментов

Рассмотрите использование других инструментов управления LXD:
- LXD UI (отдельное приложение)
- Portainer (с поддержкой LXD)
- Custom scripts (собственные скрипты управления)

Известные проблемы

Ubuntu 24.04

В Ubuntu 24.04 пакет cockpit-lxd был удален из основных репозиториев. Это известная проблема, которая затрагивает всех пользователей Ubuntu 24.04.

Статус проблемы:
- Открыта проблема в Ubuntu Bug Tracker
- Рассматривается возможность восстановления пакета
- Временное решение: использование командной строки

Совместимость с snap-installed LXD

Даже если cockpit-lxd будет доступен, он должен быть совместим с snap-установленным LXD (версия 6.6).

Рекомендации

  1. Используйте командную строку для управления LXD - это наиболее надежный метод
  2. Создайте собственные скрипты для часто используемых операций
  3. Следите за обновлениями - пакет может быть добавлен в будущих версиях Ubuntu
  4. Рассмотрите использование альтернативных инструментов если необходим веб-интерфейс

Связанные файлы

  • Скрипт исправления: /home/cdto/DENKART/scripts/fix-cockpit-lxd-auth.sh
  • Документация Cockpit: docs/setup/cockpit-installation.md
  • Конфигурация LXD: docs/setup/services-config.md

Дополнительные ресурсы


Статус: Известная проблема Ubuntu 24.04
Временное решение: Использование командной строки LXD
Дата последнего обновления: 2026-01-10