Redis의 비밀번호를 설정하는 방법은 무엇입니까?


83

내 로컬 컴퓨터에서 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-server를 중지하려고합니다. 다음 명령을 입력 할 때마다 동일한 오류 메시지가 계속 나타납니다.

    redis-server 중지

    [23925] 23 Sep 20:23:03 # 치명적인 오류, 'stop'구성 파일을 열 수 없습니다.

    보통 내 로컬 컴퓨터에서

    /etc/init.d/redis-server 중지

redis 서버를 중지하지만 /etc/init.d에 redis-server라는 프로세스가 없기 때문에 라이브 서버에서 작동하지 않습니다.

답변:


120

암호를 설정하려면 redis.conf 파일을 편집하고 다음 줄을 찾으십시오.

# requirepass foobared

그런 다음 주석 처리를 제거하고 foobared를 암호로 변경하십시오. 구성 파일의 메모에서 언급했듯이 외부 사용자가 1 초에 150k 이상의 암호를 추측하기 쉽습니다.

predis를 사용하여 새 비밀번호로 인증하려면 표시된 구문이 정확합니다. 연결 매개 변수 중 하나로 비밀번호를 추가하기 만하면됩니다.

redis를 종료하려면 설정 파일에서 pidfile설정 을 확인하십시오.

pidfile /var/run/redis.pid

명령 줄에서 다음을 실행합니다.

cat /var/run/redis.pid

실행중인 서버의 프로세스 ID를 제공 한 다음 해당 pid를 사용하여 프로세스를 종료합니다.

kill 3832

최신 정보

또한 추가하고 싶었습니다 /etc/init.d/redis-server stop. 라이브 서버에서 작업하는 데 익숙 하게 만들 수도 있습니다 . /etc/init.d/에있는 모든 파일은 쉘 스크립트 일뿐입니다. 로컬 서버에서 redis-server 스크립트를 가져 와서 같은 위치의 라이브 서버에 복사 한 다음 vi 등으로 무엇을하는지 살펴보십시오. 사용하기를 원하면 일부 경로 등을 수정해야 할 수도 있지만 매우 간단해야합니다.


1
이것은 Windows에서 작동하지 않는 것 같습니다. 두 conf 파일을 모두 시도했습니다. 여러 조합으로 Redis 재시작을 시도했습니다. 작동 한 유일한 것은 "redis-cli config set requirepass somepass"입니다. 또한 서버가 다시 시작 / 종료 될 때마다 암호가 손실되었습니다. 그래서 나는 창문이 그것이라고 생각합니다.
Jeffz

1
선택한 설치 프로세스에 따라 Redis 구성 파일을 "vi /etc/redis/redis.conf"또는 "vi /etc/redis/6379.conf"(예)로 가질 수 있습니다. 여기서 "6379"는 포트!
Eduardo Lucio

최대 암호 길이가 있습니까?
AndreasKralj

또한 redis 서버가 실행 중이면 시작시 맨 위에 pid를 출력합니다 ... Redis version = xxx bits = 64, commit = xxxxxx, modified = 0, pid = xxxx
dave4jr

Redis는 더 좋아지고 기계는 더 빨라졌습니다. Redis 6의 구성 파일에는 "Redis가 매우 빠르기 때문에 외부 사용자가 최신 상자에 대해 초당 최대 1 백만 개의 암호를 시도 할 수 있습니다"라고 명시되어 있습니다. 그것은 150K였습니다. :-) 저는 개인적으로 이와 같은 openssl rand 50 | openssl base64 -A것을 사용하여 긴 암호를 생성했습니다. 그러나 아마도 지금 ACL을 사용하는 것이 좋습니다.
Lashae

66

클라이언트에서 다음 명령을 사용할 수도 있습니다.

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

위의 명령은 서버 암호 p@ss$12E45로 설정 됩니다 redis.


1
추가하기 : tutorialspoint.com/redis/redis_security.htm 에서 언급했듯이 redis-cli를 통해 로그인하려면 먼저 redis-cli.exe. 그런 다음 AUTH <password>.
arun

6
암호 인증을 비활성화하려면 다음을 사용하십시오.config set requirepass ""
arun

3
그리고 redis를 다시 시작하면 이전으로 재설정됩니다. 따라서 conf 파일도 추가하십시오.
theGamblerRises

Config set requirepass "myPassword"이 명령이 작동하지 않습니다.이 명령을 실행하면 오류없이 실행됩니다. 그런 다음 Redis 인스턴스를 다시 시작했습니다. 하지만 비밀번호를 증명하지 않고도 CLI에서 Redis 인스턴스로 핑할 수 있습니다. 나중에 redis.conf에서 requirepass 속성을 확인했는데 기본 상태에서 찾았습니다. 즉, config set requirepass 명령이 내 구성에서 requirepass 값을 설정하지 못해 작동하지 않는 이유입니다. 작동하지 않는 이유는 무엇입니까?
Ashish Shukla

50

예:

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 인스턴스를 다시 시작했습니다. 하지만 비밀번호를 증명하지 않고도 CLI에서 Redis 인스턴스로 핑할 수 있습니다. 나중에 redis.conf에서 requirepass 속성을 확인했는데 기본 상태에서 찾았습니다. 즉, config set requirepass 명령이 내 구성에서 requirepass 값을 설정하지 못해 작동하지 않는 이유입니다. 작동하지 않는 이유는 무엇입니까?
Ashish Shukla

20
sudo nano /etc/redis/redis.conf 

line을 찾아 주석 해제 # requirepass foobared한 다음 서버를 다시 시작 하십시오.

이제 암호는 foobared


17

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

7

redis 구성 파일 열기

sudo nano /etc/redis/redis.conf 

암호 설정

바꾸다

# requirepass foobared

requirepass YOURPASSPHRASE

redis 다시 시작

redis-server restart

4

이를 위해 redis 구성 파일을 업데이트해야합니다. 기본적으로 redis에 대한 암호는 없습니다.

01) redis 구성 파일 열기

sudo vi /etc/redis/redis.conf

SECURITY 섹션 에서 requirepass 필드를 찾아 해당 필드의 주석을 해제 한 다음 "foobared" 대신 비밀번호를 설정하십시오.

# requirepass foobared

다음과 같아야합니다.

requirepass YOUR_PASSWORD

그런 다음 redis를 다시 시작하고 redis-cli를 시작합니다.

비밀번호를 올바르게 설정했는지 확인해야 할 경우 redis-cli에서 commads 아래에서 실행할 수 있습니다.

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

`


3

단계 1. 아래 명령을 사용하여 redis 서버를 중지합니다. /etc/init.d/redis-server stop 단계 2. 명령을 입력합니다. sudo nano /etc/redis/redis.conf

3 단계 : # foobared 단어를 필요로하고 # foobared를 제거하고 foobared를 비밀번호로 변경합니다.

전의. 루트 필요


2

암호를 설정하기 위해 구성 파일에 정확히 무엇을 추가해야하는지 찾을 수 없었습니다.

구성 파일은 /etc/redis/redis.confREPLICATION과 LIMITS 섹션 사이에 위치해야하는 SECURITY 섹션에서 설정하고 암호를 설정할 수 있습니다. 비밀번호 설정은 requirepass 지시문을 사용하여 수행됩니다. 자세한 정보는 AUTH 명령 설명을보십시오.


0

redis 비밀번호를 설정하는 방법은 무엇입니까?

단계 1. 아래 명령을 사용하여 redis 서버를 중지합니다. /etc/init.d/redis-server stop

2 단계 : 명령 입력 : sudo nano /etc/redis/redis.conf

3 단계 : # foobared 단어를 필요로하고 # foobared를 제거하고 foobared를 비밀번호로 변경합니다.

전의. 루트 필요

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.