Kickidler Server 1.0 для Linux — исправление ошибки SCRAM-аутентификации PostgreSQL

Kickidler Server 1.0 для Linux — исправление ошибки SCRAM-аутентификации PostgreSQL


1. Назначение

В статье описанокак устранить ошибку аутентификации PostgreSQL, которая может появиться в логах Kickidler Server во время или после установки сервера на Linux.

Инструкция предназначена для Kickidler Server 1.0 на Linux, когда PostgreSQL использует метод аутентификации scram-sha-256, а серверному компоненту требуется совместимый метод.

2. Признаки ошибки

В логах сервера может появиться следующая ошибка:

ERROR database connection failed: SCRAM authentication requires libpq version 10 or above

QPSQL: Unable to connect

В этом состоянии Kickidler Server не может пройти аутентификацию в PostgreSQL, из-за чего служба может не запускаться или не получать доступ к базе данных.

3. Причина

Проблема обычно связана с PostgreSQL 14. По умолчанию эта версия может использовать метод аутентификации scram-sha-256.

Kickidler Server 1.0 в некоторых Linux-окружениях не может работать с этим методомпоскольку используемая серверным компонентом клиентская библиотека PostgreSQL несовместима с SCRAM-аутентификацией.

Для устранения ошибки необходимо заменить метод локальной аутентификации PostgreSQL с scram-sha-256 на md5, а затем повторно задать пароль пользователю базы данных kickidler_node, чтобы PostgreSQL сохранил его в совместимом формате.

ВАЖНО

Для этого исправления используйте md5. Не используйте trust в рабочей базе данныхесли этот метод не был явно согласован для временной диагностикиМетод trust отключает проверку пароля для подходящих подключений.

4. Перед началом

Убедитесьчто выполнены следующие условия:

  • есть SSH- или консольный доступ к Linux-серверу;
  • есть права sudo;
  • используется Linux-дистрибутив на базе systemd;
  • файлы конфигурации PostgreSQL находятся в каталоге /etc/postgresql/14/main/;
  • пользователь базы данных PostgreSQL называется kickidler_node;
  • известен пароль базы данныхиспользуемый Kickidler ServerВ стандартной установке обычно используется пароль scout.

ПРЕДУПРЕЖДЕНИЕ

Команды ниже временно останавливают Kickidler ServerВ это время сервер может не принимать данные от агентова веб-интерфейс может быть недоступенНа рабочем сервере выполняйте процедуру в согласованное окно обслуживания.

5. Создание резервных копий конфигурации

Перед изменением файлов конфигурации PostgreSQL создайте резервные копии:

sudo cp /etc/postgresql/14/main/postgresql.conf /etc/postgresql/14/main/postgresql.conf.bak.$(date +%F_%H-%M-%S)

sudo cp /etc/postgresql/14/main/pg_hba.conf /etc/postgresql/14/main/pg_hba.conf.bak.$(date +%F_%H-%M-%S)

6. Остановка KickidlerNode

Остановите службу KickidlerNode перед изменением параметров аутентификации PostgreSQL:

sudo systemctl stop kickidlernode

Проверьтечто служба остановлена:

sudo systemctl status kickidlernode

7. Изменение password_encryption на md5

Откройте файл конфигурации PostgreSQL:

sudo nano /etc/postgresql/14/main/postgresql.conf

Найдите строку:

#password_encryption = scram-sha-256

Раскомментируйте её и замените значение на:

password_encryption = md5

Сохраните файл и закройте редакторВ nano нажмите Ctrl+O, затем Enter, после чего Ctrl+X.

8. Перезапуск PostgreSQL

Перезапустите PostgreSQL, чтобы применить новый параметр шифрования паролей:

sudo systemctl restart postgresql

9. Изменение метода аутентификации в pg_hba.conf на md5

Откройте файл настройки клиентской аутентификации PostgreSQL:

sudo nano /etc/postgresql/14/main/pg_hba.conf

Найдите строкигде для локального доступа к PostgreSQL используется scram-sha-256, и замените метод на md5.

Пример:

host    all    all    127.0.0.1/32    md5

Сохраните файл и закройте редактор.

ПРИМЕЧАНИЕ

Не изменяйте несвязанные правила сетевого доступа без необходимости. PostgreSQL не должен быть доступен с пользовательских рабочих станций или из интернета.

10. Сброс пароля пользователя kickidler_node

После изменения password_encryption на md5 повторно задайте пароль пользователю PostgreSQL kickidler_node. Это необходимочтобы пароль был сохранён в совместимом формате.

Переключитесь на системного пользователя PostgreSQL:

sudo su postgres

Запустите интерактивную консоль PostgreSQL:

psql

Измените пароль пользователя kickidler_node:

\password kickidler_node

Когда PostgreSQL запросит парольукажите пароль базы данныхиспользуемый Kickidler ServerВ стандартной установке используйте:

scout

Выйдите из PostgreSQL:

\q

Вернитесь в обычную оболочку:

exit

11. Перезапуск PostgreSQL и запуск KickidlerNode

Ещё раз перезапустите PostgreSQL:

sudo systemctl restart postgresql

Запустите KickidlerNode:

sudo systemctl start kickidlernode

12. Проверка результата

Проверьтечто PostgreSQL и KickidlerNode запущены:

sudo systemctl status postgresql

sudo systemctl status kickidlernode

Затем повторно проверьте логи сервераОшибка SCRAM-аутентификации больше не должна появляться.

Ожидаемый результат:

  • KickidlerNode успешно запускается;
  • сервер подключается к PostgreSQL;
  • ошибка SCRAM authentication requires libpq version 10 or above больше не повторяется в логах;
  • веб-интерфейс и функции Kickidler Server снова доступны.

13. Откат изменений

Если после изменений сервер не запускаетсявосстановите файлы конфигурации из резервных копийсозданных перед процедурой.

Пример команд отката:

sudo systemctl stop kickidlernode

sudo cp /etc/postgresql/14/main/postgresql.conf.bak.YYYY-MM-DD_HH-MM-SS /etc/postgresql/14/main/postgresql.conf

sudo cp /etc/postgresql/14/main/pg_hba.conf.bak.YYYY-MM-DD_HH-MM-SS /etc/postgresql/14/main/pg_hba.conf

sudo systemctl restart postgresql

sudo systemctl start kickidlernode

Замените YYYY-MM-DD_HH-MM-SS фактической временной меткой из имён резервных файлов.

14. Когда обращаться в техническую поддержку

Обратитесь в техническую поддержку Kickidler, если:

  • путь к конфигурации PostgreSQL отличается от /etc/postgresql/14/main/;
  • пользователь PostgreSQL kickidler_node отсутствует;
  • пароль в конфигурации сервера отличается от ожидаемого;
  • PostgreSQL не перезапускается после изменения файлов конфигурации;
  • KickidlerNode по-прежнему не подключается к PostgreSQL;
  • в логах продолжает появляться та же ошибка SCRAM-аутентификации.

При обращении передайте:

  • дистрибутив и версию Linux;
  • версию PostgreSQL;
  • точный текст ошибки из логов;
  • соответствующие локальные строки из pg_hba.conf;
  • текущее значение password_encryption в postgresql.conf;
  • вывод статуса служб postgresql и kickidlernode.
    • Related Articles

    • Kickidler Server 2.0 для Linux Ubuntu — быстрый старт по установке

      1. Назначение Этот документ поможет быстро установить Kickidler Server на сервер с Linux Ubuntu. 2. Перед установкой Подготовьте: сервер или виртуальную машину с Ubuntu; установочный файл Kickidler Server для Linux: ключ сервера из личного кабинета ...
    • Kickidler Server 2.0 для Linux — руководство администратора

      1. Назначение Этот документ описывает основные административные действия по установке, проверке, диагностике и удалению Kickidler Server на Linux-серверах семейства Debian. Руководство предназначено для системных администраторов, инженеров ...
    • Быстрый старт по установке и удалению Kickidler Server 2.0 на Windows

      1. Назначение Этот документ поможет быстро установить и удалить Kickidler Server на компьютере с Windows. 2. Перед установкой Подготовьте: установочный файл Kickidler Server; ключ сервера из личного кабинета my.kickidler.ru; доступ к компьютеру с ...
    • Kickidler Agent 2.0 для Windows — руководство администратора

      1. Назначение Этот документ описывает базовые действия администратора при установке, проверке, диагностике и удалении Kickidler Agent на рабочей станции Windows. Инструкция предназначена для системных администраторов, инженеров технической поддержки ...
    • Kickidler Agent 2.0 для Windows — удалённая и массовая установка

      1. Назначение Этот документ описывает базовый порядок удалённой установки Kickidler Agent 2.0 на рабочие станции Windows. Инструкция предназначена для системных администраторов, которые выполняют массовое развёртывание через: групповые политики ...