Как установить пароль для redis-сервера

У меня развернуто 3 экземпляра высокой доступности. На каждом сервере у меня установлены Redis и Sentinel. Пытаюсь поставить пароль, чтобы он запрашивал его в момент входа командой redis-cli.

Я изменяю значение параметра requirepass файла redis.conf.

requirepass password123

Также внутри терминала Redis я устанавливаю пароль с помощью следующих команд

config set requirepass password123
auth password123

Когда я подключаюсь с помощью следующей команды

redis-cli --tls --cert /<path>/redis.crt --key /<path>/redis.key --cacert /<path>/ca.crt -a password123

Он отлично работает, моя проблема в том, что когда я перезапускаю службу Redis, по какой-то причине настройки пароля не сохраняются, и я получаю следующее сообщение

Warning: AUTH failed

Я не знаю, какую конфигурацию мне нужно сделать, чтобы изменение сохранялось после перезапуска службы Redis.

Версия Redis, которую я установил, это сервер Redis v=6.0.6.


person g.o.c.    schedule 22.03.2021    source источник


Ответы (1)


Проверьте конфигурацию ACL. Ваша конфигурация requirepass будет игнорироваться при работе ACL. Я получаю информацию из примера файла redis.conf.

ВАЖНОЕ ПРИМЕЧАНИЕ: начиная с Redis 6, requirepass — это просто уровень совместимости поверх новой системы ACL. Эффект опции будет просто установка пароля для пользователя по умолчанию. Клиенты по-прежнему будут аутентифицироваться с использованием AUTH, как обычно, или более явно с AUTH по умолчанию, если они следуют новому протоколу: оба варианта будут работать. Параметр requirepass не совместим с параметром aclfile и командой ACL LOAD, это приведет к игнорированию requirepass.

person Renshaw    schedule 22.03.2021
comment
Вы правы, я проверяю список ACL redis и вижу, что пользователь по умолчанию не использует пароль 1) пользователь по умолчанию на nopass ~* +@all Можно ли назначить пароль пользователю по умолчанию? - person g.o.c.; 22.03.2021
comment
да, вы можете назначить пароль пользователю по умолчанию. попробуй ACL SETUSER default on >newpass ~* +@all - person Renshaw; 23.03.2021
comment
Спасибо, тестируя эту команду, я вижу, что пользователю по умолчанию назначен пароль. Моя единственная проблема в том, что с этой командой пароль временный. Если я перезапущу службу Redis, она вернется к nopass. Есть ли способ сделать его постоянным? - person g.o.c.; 23.03.2021
comment
redis.io/topics/acl Существует два способа сохранения пользователей в конфигурации Redis. 1. Пользователи могут быть указаны непосредственно внутри файла redis.conf. 2. Можно указать внешний файл ACL. - person Renshaw; 23.03.2021
comment
Мне удалось установить постоянный пароль для пользователя по умолчанию. Добавляем эти 2 параметра в файл redis.conf requirepass newpass123 masterauth newpass123 И в файл sentinel.conf sentinel auth-pass mymaster newpass123 Спасибо - person g.o.c.; 24.03.2021