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.