Как установить пароль для Redis?

87

Я работаю с Redis на своем локальном компьютере, поэтому мне действительно не нужно устанавливать пароль для подключения к серверу с моим клиентом php (я использую predis в качестве клиента). Однако я перемещаю свое приложение на активный сервер, поэтому я хочу установить пароль для подключения к моему серверу Redis.

У меня несколько вопросов:

  • Я проверил в Интернете, как установить пароль, и похоже, что мне нужно добавить пароль в redis.conf. Я не смог найти, что именно нужно добавить в файл конфигурации для установки пароля.

  • также в предисе, как мне добавить пароль. Я использую следующий массив параметров для подключения к серверу Redis

    $ my_server = array ('host' => '127.0.0.1', 'port' => 6379, 'database' => 1);

я должен добавить пароль таким образом?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • Последний вопрос, я пытаюсь остановить свой redis-сервер на живом сервере. Каждый раз, когда я ввожу следующую команду, я получаю одно и то же сообщение об ошибке

    остановка Redis-сервера

    [23925] 23 сен, 20:23:03 # Неустранимая ошибка, не удается открыть файл конфигурации 'stop'

    обычно на моей локальной машине я ввожу

    /etc/init.d/redis-server stop

чтобы остановить сервер redis, но он не работает на моем живом сервере, поскольку в моем /etc/init.d нет процесса, называемого redis-server

Дон Горгона
источник

Ответы:

123

Чтобы установить пароль, отредактируйте файл redis.conf, найдите эту строку

# requirepass foobared

Затем раскомментируйте его и замените foobared на свой пароль. Убедитесь, что вы выбрали что-то довольно длинное, 32 символа или около того, вероятно, было бы хорошо, для внешнего пользователя легко угадать до 150 тысяч паролей в секунду, как указано в примечаниях в файле конфигурации.

Для аутентификации с новым паролем с помощью predis синтаксис, который вы указали, верен. Просто добавьте пароль в качестве одного из параметров подключения.

Чтобы завершить работу Redis ... проверьте настройки в своем файле конфигурации pidfile, вероятно, это будет

pidfile /var/run/redis.pid

В командной строке запустите:

cat /var/run/redis.pid

Это даст вам идентификатор процесса запущенного сервера, а затем просто завершите процесс, используя этот pid:

kill 3832

Обновить

Я также хотел добавить, что вы также можете сделать то, /etc/init.d/redis-server stopчто вы привыкли работать на своем живом сервере. Все эти файлы в /etc/init.d/ - это просто сценарии оболочки, возьмите сценарий redis-server с локального сервера и скопируйте его на рабочий сервер в том же месте, а затем просто посмотрите, что он делает с vi или чем-то еще. вы хотите использовать, вам может потребоваться изменить некоторые пути и тому подобное, но это должно быть довольно просто.

Profitphp
источник
1
Похоже, это не работает в Windows. Я пробовал оба файла conf. Я пробовал перезапуск Redis во многих комбинациях. Единственное, что сработало, было: "redis-cli config set requirepass somepass". Кроме того, каждый раз, когда сервер был перезапущен / выключен, он терял пароль. Думаю, это то, что касается окон.
Jeffz
1
В зависимости от выбранного процесса установки у нас может быть файл конфигурации Redis как «vi /etc/redis/redis.conf» или «vi /etc/redis/6379.conf» (например), где «6379» - это значение, выбранное для порт!
Эдуардо Лучио
Есть ли максимальная длина пароля?
AndreasKralj
Кроме того, если сервер Redis запущен, он распечатывает pid вверху при запуске ... он должен сказать: Redis version = xxx bits = 64, commit = xxxxxx, modified = 0, pid = xxxx
dave4jr
Redis стал лучше, машины стали быстрее. В конфигурационном файле Redis 6 указано, что «поскольку Redis довольно быстр, внешний пользователь может пробовать до 1 миллиона паролей в секунду на современном компьютере». Это было 150 КБ :-) Я лично использовал что-то подобное openssl rand 50 | openssl base64 -Aдля генерации длинного пароля. Однако, возможно, сейчас лучше использовать ACL.
Lashae
67

вы также можете использовать следующую команду на клиенте

cmd :: config set requirepass p@ss$12E45

Вышеупомянутая команда будет установлена p@ss$12E45в качестве redisпароля сервера.

Сухас Гайквад
источник
1
Просто чтобы добавить: как упоминалось на сайте tutorialspoint.com/redis/redis_security.htm, чтобы войти в систему через redis-cli, сначала войдите в оболочку redis, запустив redis-cli.exe. Затем введите AUTH <password>.
arun
6
А чтобы отключить аутентификацию по паролю, просто используйтеconfig set requirepass ""
arun
3
И он будет сброшен до старого, если вы перезапустите Redis. Итак, добавьте и файл conf.
theGamblerRises
Config set requirepass "myPassword" эта команда не работает для меня, когда я выполняю эту команду, она запускается без ошибок. Затем я перезапустил свой экземпляр Redis. Но я все еще могу пинговать экземпляр Redis из интерфейса командной строки без подтверждения пароля. Позже я проверил свой redis.conf на предмет атрибута requirepass, там я обнаружил его в состоянии по умолчанию, что означает, что команде config set requirepass не удалось установить значение requirepass в моей конфигурации, по этой причине он не работал. Есть предположение / причина, по которой он не работает?
Ашиш Шукла
52

Пример:

redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "mypass"
OK
redis 127.0.0.1:6379> AUTH mypass
Ok
Флавио Троя
источник
Если используется redis-py, связанная команда:redis.Redis.config_set('requirepass', "mycoolpassword")
jamescampbell
Config set requirepass "myPassword" эта команда не работает для меня, когда я выполняю эту команду, она запускается без ошибок. Затем я перезапустил свой экземпляр Redis. Но я все еще могу пинговать экземпляр Redis из интерфейса командной строки без подтверждения пароля. Позже я проверил свой redis.conf на предмет атрибута requirepass, там я обнаружил его в состоянии по умолчанию, что означает, что команде config set requirepass не удалось установить значение requirepass в моей конфигурации, по этой причине он не работал. Есть предположение / причина, по которой он не работает?
Ашиш Шукла
21
sudo nano /etc/redis/redis.conf 

найдите и раскомментируйте строку # requirepass foobared, затем перезапустите сервер

теперь ваш пароль foobared

Саураб Чандра Патель
источник
18

используя redis-cli:

root@server:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK

это установит пароль временно (до Redis или перезапуска сервера)

тестовый пароль:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK
Hlod
источник
7

открыть файл конфигурации Redis

sudo nano /etc/redis/redis.conf 

установить кодовую фразу

заменить

# requirepass foobared

с участием

requirepass YOURPASSPHRASE

перезапустить Redis

redis-server restart
И если.
источник
5

Для этого вам необходимо обновить конфигурационный файл Redis. По умолчанию пароль для Redis отсутствует.

01) откройте файл конфигурации Redis

sudo vi /etc/redis/redis.conf

находить поле requirepass в разделе БЕЗОПАСНОСТЬ и раскомментируйте это поле. Затем установите свой пароль вместо "foobared"

# requirepass foobared

Должно быть,

requirepass YOUR_PASSWORD

Затем перезапустите redis и запустите redis-cli.

Если вам нужно проверить, правильно ли вы установили пароль, вы можете запустить нижеприведенные запятые в redis-cli.

sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> exit


sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> set key2 check
OK
127.0.0.1:6379> get key2
"check"
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> get key1
"20"
127.0.0.1:6379> exit

`

Ситхара
источник
4

шаг 1. остановите сервер Redis, используя команду ниже /etc/init.d/redis-server stop step 2. введите команду: sudo nano /etc/redis/redis.conf

Шаг 3. найдите # requirepass foobared word и удалите # и измените foobared на ВАШ ПАРОЛЬ

напр. requirepass root

Сагар Джадхав
источник
2

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

Файл конфигурации должен быть расположен в /etc/redis/redis.confразделе БЕЗОПАСНОСТЬ, а пароль должен быть установлен между разделами REPLICATION и LIMITS. Установка пароля выполняется с помощью директивы requirepass. Для получения дополнительной информации попробуйте посмотреть описание команды AUTH .

yojimbo87
источник
1

Как установить пароль Redis?

Шаг 1. остановите сервер Redis, используя команду ниже /etc/init.d/redis-server stop

Шаг 2. введите команду: sudo nano /etc/redis/redis.conf

Шаг 3. найдите # requirepass foobared word и удалите # и измените foobared на ВАШ ПАРОЛЬ

напр. requirepass root

Сагар Джадхав
источник