Jak ustawić hasło do Redis?

87

Pracuję z redis na moim komputerze lokalnym, więc nie muszę ustawiać hasła, aby połączyć się z serwerem z moim klientem php (używam predis jako klienta). Jednak przenoszę aplikację na serwer aktywny, więc chcę ustawić hasło, aby połączyć się z moim serwerem redis.

Mam kilka pytań:

  • Sprawdziłem w całym internecie, jak ustawić hasło i wygląda na to, że muszę dodać hasło w redis.conf. Nie mogłem jednak znaleźć tego, co powinienem dokładnie dodać do pliku konfiguracyjnego, aby ustawić hasło.

  • również przewiduję, jak dodać hasło. Używam następującej tablicy parametrów, aby połączyć się z serwerem redis

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

czy powinienem dodać hasło w ten sposób?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • ostatnie pytanie, próbuję zatrzymać mój serwer redis na serwerze rzeczywistym. Za każdym razem, gdy wprowadzam następujące polecenie, otrzymuję ten sam komunikat o błędzie

    zatrzymanie serwera redis

    [23925] 23 września 20:23:03 # Błąd krytyczny, nie można otworzyć pliku konfiguracyjnego „stop”

    zwykle na moim lokalnym komputerze, do którego wchodzę

    /etc/init.d/redis-server stop

aby zatrzymać serwer redis, ale nie działa na moim serwerze rzeczywistym, ponieważ nie ma procesu o nazwie redis-server w moim /etc/init.d

Don Gorgon
źródło

Odpowiedzi:

123

Aby ustawić hasło, edytuj plik redis.conf, znajdź tę linię

# requirepass foobared

Następnie odkomentuj go i zmień foobared na swoje hasło. Upewnij się, że wybrałeś coś dość długiego, około 32 znaków prawdopodobnie byłoby dobre, zewnętrznemu użytkownikowi łatwo jest odgadnąć ponad 150 000 haseł na sekundę, o czym wspominają notatki w pliku konfiguracyjnym.

Aby uwierzytelnić się za pomocą nowego hasła przy użyciu predis, pokazana składnia jest poprawna. Wystarczy dodać hasło jako jeden z parametrów połączenia.

Aby zamknąć redis ... sprawdź w pliku konfiguracyjnym pidfileustawienie, prawdopodobnie tak będzie

pidfile /var/run/redis.pid

Z wiersza poleceń uruchom:

cat /var/run/redis.pid

To da ci identyfikator procesu uruchomionego serwera, a następnie po prostu zabij proces, używając tego pid:

kill 3832

Aktualizacja

Chciałem również dodać, że możesz również sprawić, /etc/init.d/redis-server stopże pracujesz na swoim serwerze live. Wszystkie te pliki w /etc/init.d/ to tylko skrypty powłoki, usuń skrypt redis-server z lokalnego serwera i skopiuj go na serwer live w tej samej lokalizacji, a potem po prostu zobacz, co robi z vi lub czymkolwiek lubisz używać, być może będziesz musiał zmodyfikować niektóre ścieżki i tym podobne, ale powinno to być całkiem proste.

profitphp
źródło
1
To nie wydaje się działać w systemie Windows. Wypróbowałem oba pliki konfiguracyjne. Próbowałem restartu Redis w wielu kombinacjach. Jedyne, co zadziałało, to: "redis-cli config set requirepass somepass". Dodatkowo za każdym razem, gdy serwer był restartowany / zamykany, tracił hasło. Więc myślę, że to tyle z oknami.
Jeffz,
1
W zależności od wybranego procesu instalacji możemy mieć plik konfiguracyjny Redis jako „vi /etc/redis/redis.conf” lub „vi /etc/redis/6379.conf” (np.), Gdzie „6379” jest wartością wybraną dla Port!
Eduardo Lucio
Czy istnieje maksymalna długość hasła?
AndreasKralj
Ponadto, jeśli serwer redis jest uruchomiony, po uruchomieniu wypisuje pid na górze ... powinien to być wersja Redis = xxx bits = 64, commit = xxxxxx, modified = 0, pid = xxxx
dave4jr
Redis stał się lepszy, maszyny stają się szybsze. Plik konfiguracyjny Redis 6 stwierdza, że ​​„ponieważ Redis jest dość szybki, zewnętrzny użytkownik może wypróbować do 1 miliona haseł na sekundę na nowoczesnym pudełku”. To było 150K :-) Osobiście używałem czegoś takiego openssl rand 50 | openssl base64 -Ado wygenerowania długiego hasła. Jednak być może lepiej jest teraz użyć ACL.
Lashae
67

możesz również użyć następującego polecenia na kliencie

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

powyższe polecenie zostanie ustawione p@ss$12E45jako redishasło serwera.

Suhas Gaikwad
źródło
1
Wystarczy dodać: jak wspomniano na tutorialspoint.com/redis/redis_security.htm, aby zalogować się przez redis-cli, najpierw przejdź do powłoki redis, uruchamiając redis-cli.exe. Następnie wpisz AUTH <password>.
Arun
6
I do uwierzytelniania hasłem wyłączyć, wystarczy użyćconfig set requirepass ""
Arun
3
I zresetuje się do starego, jeśli ponownie uruchomisz redis. Więc dodaj również plik conf.
theGamblerRises
Config set requirepass "myPassword" to polecenie nie działa dla mnie, kiedy wykonuję to polecenie, to działa bez błędu. Następnie ponownie uruchomiłem instancję Redis. Ale nadal mogę pingować do instancji Redis z CLI bez potwierdzania hasła. Później sprawdziłem mój redis.conf pod kątem atrybutu requirepass, tam znalazłem go w stanie domyślnym, co oznacza, że ​​polecenie config set requirepass nie ustawiło wartości requirepass w mojej konfiguracji, przez co nie działało. Jakieś przypuszczenia / powody, dla których to nie działa?
Ashish Shukla
52

Przykład:

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
Flavio Troia
źródło
Jeśli ktoś używa redis-py, powiązane polecenie to:redis.Redis.config_set('requirepass', "mycoolpassword")
jamescampbell
Config set requirepass "myPassword" to polecenie nie działa dla mnie, kiedy wykonuję to polecenie, to działa bez błędu. Następnie ponownie uruchomiłem instancję Redis. Ale nadal mogę pingować do instancji Redis z CLI bez potwierdzania hasła. Później sprawdziłem mój redis.conf pod kątem atrybutu requirepass, tam znalazłem go w stanie domyślnym, co oznacza, że ​​polecenie config set requirepass nie ustawiło wartości requirepass w mojej konfiguracji, przez co nie działało. Jakieś przypuszczenia / powody, dla których to nie działa?
Ashish Shukla
21
sudo nano /etc/redis/redis.conf 

znajdź i usuń komentarz # requirepass foobared, a następnie zrestartuj serwer

teraz twoje hasło to foobared

Saurabh Chandra Patel
źródło
18

używając redis-cli:

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

spowoduje to tymczasowe ustawienie hasła (do redis lub restartu serwera)

hasło testowe:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK
Hlod
źródło
7

otwórz plik konfiguracyjny Redis

sudo nano /etc/redis/redis.conf 

ustaw hasło

zastąpić

# requirepass foobared

z

requirepass YOURPASSPHRASE

zrestartuj redis

redis-server restart
I jeśli.
źródło
5

W tym celu należy zaktualizować plik konfiguracyjny redis. Domyślnie nie ma hasła do redis.

01) otwórz plik konfiguracyjny redis

sudo vi /etc/redis/redis.conf

znajdź pole requirepass w sekcji BEZPIECZEŃSTWO i odznacz to pole. Następnie ustaw swoje hasło zamiast „foobared”

# requirepass foobared

Powinno być jak

requirepass YOUR_PASSWORD

Następnie uruchom ponownie redis i uruchom redis-cli.

Jeśli chcesz sprawdzić, czy poprawnie ustawiłeś hasło, możesz uruchomić poniższe komendy w 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

`

Sithara
źródło
4

krok 1. zatrzymaj serwer redis za pomocą poniższego polecenia /etc/init.d/redis-server zatrzymaj krok 2. wprowadź polecenie: sudo nano /etc/redis/redis.conf

krok 3.find # requirepass foobared słowo i usuń # i zmień foobared na TWOJE HASŁO

dawny. requirepass root

Sagar Jadhav
źródło
2

Nie mogłem jednak znaleźć tego, co powinienem dokładnie dodać do pliku konfiguracyjnego, aby ustawić hasło.

Plik konfiguracyjny powinien znajdować się pod adresem, /etc/redis/redis.confa hasło można ustawić w sekcji BEZPIECZEŃSTWO, która powinna znajdować się pomiędzy sekcją REPLIKACJA a LIMITY. Konfiguracja hasła odbywa się za pomocą dyrektywy requirepass. Więcej informacji można znaleźć w opisie polecenia AUTH .

yojimbo87
źródło
1

Jak ustawić hasło redis?

krok 1. zatrzymaj serwer redis za pomocą poniższego polecenia /etc/init.d/redis-server stop

krok 2. wprowadź polecenie: sudo nano /etc/redis/redis.conf

krok 3.find # requirepass foobared słowo i usuń # i zmień foobared na TWOJE HASŁO

dawny. requirepass root

Sagar Jadhav
źródło