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


87

Я працюю з redis на своїй локальній машині, тому мені дійсно не потрібно встановлювати пароль для підключення до сервера за допомогою мого php-клієнта (я використовую predis як клієнт). Однак я переношу свою програму на діючий сервер, тому хочу встановити пароль для підключення до мого сервера redis.

У мене мало запитань:

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

  • також в predis, як мені додати пароль. Я використовую наступний масив параметрів для підключення до сервера 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 # Фатальна помилка, не вдається відкрити конфігураційний файл "зупинити"

    зазвичай на своїй локальній машині я заходжу

    /etc/init.d/redis-server зупинка

зупинити сервіс 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-сервера з вашого локального сервера і скопіюйте його на діючий сервер в тому ж місці, а потім просто подивіться, що він робить з vi чи іншим вам подобається користуватися, можливо, вам доведеться змінити деякі шляхи тощо, але це повинно бути досить просто.


1
Здається, це не працює в Windows. Я спробував обидва файли конф. Я спробував перезапустити 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, модифікований = 0, pid = xxxx
dave4jr

Redis покращився, машини стали швидшими. У конфігураційному файлі Redis 6 зазначено, що "оскільки Redis досить швидкий, зовнішній користувач може спробувати до 1 мільйона паролів в секунду проти сучасного ящика". Це було 150 тисяч :-) Я особисто використовував щось подібне openssl rand 50 | openssl base64 -Aдля створення довгого пароля. Однак, можливо, зараз краще використовувати ACL.
Lashae,

68

Ви також можете використовувати наступну команду на клієнті

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

Набір конфігурації requirepass "myPassword" ця команда не працює для мене, коли я виконую цю команду, вона запускається без помилок. Потім я перезапустив свій екземпляр Redis. Але я все ще можу звернутися до екземпляра Redis з CLI, не підтвердивши жодного пароля. Пізніше я перевірив мій redis.conf на наявність атрибута requirepass, там я знайшов його у стані за замовчуванням, що означає, що команда config set requirepass не змогла встановити значення requirepass у моєму конфігу, тому причина не працює. Будь-яка здогадка / причина, чому це не працює?
Ashish Shukla,

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

Набір конфігурації requirepass "myPassword" ця команда не працює для мене, коли я виконую цю команду, вона запускається без помилок. Потім я перезапустив свій екземпляр Redis. Але я все ще можу звернутися до екземпляра Redis з CLI, не підтвердивши жодного пароля. Пізніше я перевірив мій redis.conf на наявність атрибута requirepass, там я знайшов його у стані за замовчуванням, що означає, що команда config set requirepass не змогла встановити значення requirepass у моєму конфігу, тому причина не працює. Будь-яка здогадка / причина, чому це не працює?
Ashish Shukla,

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

це тимчасово встановить пароль (до повторного запуску або перезапуску сервера)

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

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK

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 поле під БЕЗПЕКИ розділу і розкоментувати , що field.Then встановити пароль замість «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, зупиніть крок 2.enter команда: sudo nano /etc/redis/redis.conf

крок 3. знайдіть # requirepass foobared word і видаліть # та змініть foobared на ВАШ ПАРОЛЬ

напр. потрібнопройти корінь


2

я не міг знайти, що саме слід додати до файлу конфігурації для встановлення пароля.

Файл конфігурації повинен знаходитися за адресою, /etc/redis/redis.confа пароль можна встановити в розділі БЕЗПЕКА, який повинен знаходитись між розділом ЗАМОВЛЕННЯ та ОБМЕЖЕННЯ. Налаштування пароля здійснюється за допомогою директиви requirepass. Для отримання додаткової інформації спробуйте переглянути опис команди AUTH .


1

Як встановити пароль redis?

крок 1. зупиніть сервер redis, використовуючи команду нижче /etc/init.d/redis-server stop

Крок 2. Введіть команду: sudo nano /etc/redis/redis.conf

крок 3. знайдіть # requirepass foobared word і видаліть # та змініть foobared на ВАШ ПАРОЛЬ

напр. потрібнопройти корінь

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.