¿Cómo establecer una contraseña para Redis?

82

Estoy trabajando con redis en mi máquina local, por lo que realmente no necesito configurar una contraseña para conectarme al servidor con mi cliente php (estoy usando predis como cliente). Sin embargo, estoy moviendo mi aplicación a un servidor en vivo, así que quiero configurar una contraseña para conectarme a mi servidor Redis.

Tengo algunas preguntas:

  • Revisé en Internet cómo configurar la contraseña y parece que necesito agregar la contraseña en redis.conf. Sin embargo, no pude encontrar lo que debería agregar exactamente al archivo de configuración para configurar la contraseña.

  • también en predis cómo debo agregar la contraseña. Estoy usando la siguiente matriz de parámetros para conectarme al servidor redis

    $ my_server = array ('host' => '127.0.0.1', 'puerto' => 6379, 'base de datos' => 1);

¿Debo agregar la contraseña de esta manera?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • última pregunta, estoy tratando de detener mi servidor redis en el servidor en vivo. Cada vez que ingreso el siguiente comando, sigo recibiendo el mismo mensaje de error

    parada del servidor redis

    [23925] 23 de septiembre 20:23:03 # Error fatal, no se puede abrir el archivo de configuración 'detener'

    normalmente en mi máquina local entro

    /etc/init.d/redis-server stop

para detener el servidor redis pero no funciona en mi servidor en vivo ya que no hay un proceso llamado servidor redis en mi /etc/init.d

Don Gorgona
fuente

Respuestas:

119

Para establecer la contraseña, edite su archivo redis.conf, busque esta línea

# requirepass foobared

Luego descomente y cambie foobared a su contraseña. Asegúrese de elegir algo bastante largo, 32 caracteres o más probablemente sería bueno, es fácil para un usuario externo adivinar más de 150k contraseñas por segundo, como mencionan las notas en el archivo de configuración.

Para autenticarse con su nueva contraseña usando predis, la sintaxis que ha mostrado es correcta. Simplemente agregue la contraseña como uno de los parámetros de conexión.

Para apagar redis ... verifique su archivo de configuración para la pidfileconfiguración, probablemente será

pidfile /var/run/redis.pid

Desde la línea de comando, ejecute:

cat /var/run/redis.pid

Eso le dará la identificación del proceso del servidor en ejecución, luego simplemente elimine el proceso usando ese pid:

kill 3832

Actualizar

También quería agregar, también podría hacer que el /etc/init.d/redis-server stopque está acostumbrado a trabajar en su servidor en vivo. Todos esos archivos en /etc/init.d/ son solo scripts de shell, saque el script redis-server de su servidor local y cópielo en el servidor en vivo en la misma ubicación, y luego mire lo que hace con vi o lo que sea le gusta usar, es posible que deba modificar algunas rutas y demás, pero debería ser bastante simple.

profitphp
fuente
1
Esto no parece funcionar en Windows. Probé ambos archivos conf. Intenté reiniciar Redis en muchas combinaciones. Lo único que funcionó fue: "redis-cli config set requirepass somepass". Además, cada vez que se reiniciaba / apagaba el servidor, se perdía la contraseña. Así que supongo que eso es lo que pasa con las ventanas.
Jeffz
1
Dependiendo del proceso de instalación elegido podemos tener el archivo de configuración de Redis como "vi /etc/redis/redis.conf" o "vi /etc/redis/6379.conf" (por ejemplo) donde "6379" es el valor elegido para el ¡Puerto!
Eduardo Lucio
¿Existe una longitud máxima de contraseña?
AndreasKralj
Además, si el servidor de Redis se está ejecutando, imprime el pid en la parte superior al iniciar ... debería decir Redis version = xxx bits = 64, commit = xxxxxx, modified = 0, pid = xxxx
dave4jr
Redis mejoró, las máquinas se volvieron más rápidas. El archivo de configuración de Redis 6 establece que "dado que Redis es bastante rápido, un usuario externo puede probar hasta 1 millón de contraseñas por segundo en una caja moderna". Fueron 150K :-) Yo personalmente estaba usando algo como esto openssl rand 50 | openssl base64 -Apara generar una contraseña larga. Sin embargo, quizás sea mejor usar ACL ahora.
Lashae
65

también puede usar el siguiente comando en el cliente

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

El comando anterior se establecerá p@ss$12E45como una rediscontraseña de servidor.

Suhas Gaikwad
fuente
1
Solo para agregar: como se mencionó en tutorialspoint.com/redis/redis_security.htm para iniciar sesión a través de redis-cli, primero ingrese al shell de redis ejecutando redis-cli.exe. Luego escribe AUTH <password>.
Arun
6
Y para deshabilitar la autenticación de contraseña, simplemente useconfig set requirepass ""
arun
3
Y se restablecerá a antiguo si reinicia redis. Entonces, agregue el archivo conf también.
theGamblerRises
Config set requirepass "myPassword" este comando no me funciona, cuando ejecuto este comando, se ejecuta sin errores. Luego reinicié mi instancia de Redis. Pero todavía puedo hacer ping a la instancia de Redis desde CLI sin probar ninguna contraseña. Más tarde verifiqué mi redis.conf para el atributo requirepass, allí lo encontré en el estado predeterminado, lo que significa que el comando config set requirepass no pudo establecer el valor de requirepass en mi configuración, esa es la razón por la que no estaba funcionando. ¿Alguna suposición / razón por la que no está funcionando?
Ashish Shukla
49

Ejemplo:

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
fuente
Si uno está usando redis-py, el comando asociado es:redis.Redis.config_set('requirepass', "mycoolpassword")
jamescampbell
Config set requirepass "myPassword" este comando no me funciona, cuando ejecuto este comando, se ejecuta sin errores. Luego reinicié mi instancia de Redis. Pero todavía puedo hacer ping a la instancia de Redis desde CLI sin probar ninguna contraseña. Más tarde verifiqué mi redis.conf para el atributo requirepass, allí lo encontré en el estado predeterminado, lo que significa que el comando config set requirepass no pudo establecer el valor de requirepass en mi configuración, esa es la razón por la que no estaba funcionando. ¿Alguna suposición / razón por la que no está funcionando?
Ashish Shukla
20
sudo nano /etc/redis/redis.conf 

buscar y descomentar la línea # requirepass foobared, luego reiniciar el servidor

ahora tu contraseña es foobared

Saurabh Chandra Patel
fuente
17

usando redis-cli:

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

esto establecerá la contraseña temporalmente (hasta que se reinicie el servidor o redis)

contraseña de prueba:

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

abrir archivo de configuración de redis

sudo nano /etc/redis/redis.conf 

establecer contraseña

reemplazar

# requirepass foobared

con

requirepass YOURPASSPHRASE

reiniciar redis

redis-server restart
Y si.
fuente
4

Para eso, necesita actualizar el archivo de configuración de redis. De forma predeterminada, no hay ninguna contraseña para redis.

01) abre el archivo de configuración de redis

sudo vi /etc/redis/redis.conf

busque el campo requirepass en la sección SEGURIDAD y descomente ese campo. Luego, establezca su contraseña en lugar de "foobared"

# requirepass foobared

Debería ser como

requirepass YOUR_PASSWORD

Luego reinicie redis y comience redis-cli.

Si necesita verificar si ha configurado la contraseña correctamente, puede ejecutar las siguientes comas en 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
fuente
3

paso 1. detenga el servidor redis usando el siguiente comando /etc/init.d/redis-server stop paso 2.Entrar comando: sudo nano /etc/redis/redis.conf

paso 3.Busque # requirepass palabra foobared y elimine # y cambie foobared a SU CONTRASEÑA

ex. requirepass root

Sagar Jadhav
fuente
2

Sin embargo, no pude encontrar lo que debería agregar exactamente al archivo de configuración para configurar la contraseña.

El archivo de configuración debe ubicarse en /etc/redis/redis.confy la contraseña se puede configurar en la sección SEGURIDAD, que debe ubicarse entre la sección REPLICACIÓN y LÍMITES. La configuración de la contraseña se realiza mediante la directiva requirepass. Para obtener más información, intente consultar la descripción del comando AUTH .

yojimbo87
fuente
0

¿Cómo configurar la contraseña de redis?

paso 1. detenga el servidor redis usando el siguiente comando /etc/init.d/redis-server stop

paso 2.Entrar comando: sudo nano /etc/redis/redis.conf

paso 3.Busque # requirepass palabra foobared y elimine # y cambie foobared a SU CONTRASEÑA

ex. requirepass root

Sagar Jadhav
fuente