web-dev-qa-db-fra.com

Redis raise error: NOAUTH Authentication required but there is no password setting

J'ai une erreur Authentification NOAUTH requise lorsque je me connecte au serveur Redis via la commande: redis-cli et exécutez ping pour vérifier si Redis fonctionne.

J'ai trouvé réponse à l'erreur NOAUTH Authentication required qui décrit que cette erreur ne se produit que lorsque Redis a défini un mot de passe, mais j'ai vérifié le fichier de configuration Redis à etc/redis/redis.conf et aucun mot de passe n'est défini.

Redis config

Est-ce que quelqu'un sait que s'il y a d'autres paramètres qui peuvent provoquer cette erreur? Merci pour toute aide.

p/s: J'utilise Ruby on Rails framework web, la base de données Redis est utilisée pour Sidekiq.

Modifié: la version Redis est 2.8.4. Le serveur est hébergé sur AWS.

Actuellement, j'ai décidé de définir un mot de passe pour le serveur Redis afin qu'il ne puisse pas être défini lors de son exécution.

(Lorsque le serveur Redis est redémarré, cela fonctionnera normalement. Vous pouvez exécuter Sudo service redis-server restart pour redémarrer le serveur Redis.)

33
Thanh

Nous avons également été confrontés à un problème similaire. On dirait que quelqu'un a analysé AWS et s'est connecté à tous les redis publics et a peut-être exécuté "CONFIG SET REQUIREPASS '" ", verrouillant ainsi l'instance en cours d'exécution de redis. Une fois que vous redémarrez le redis, la configuration est restaurée à la normale.

La meilleure chose serait d'utiliser la stratégie de groupe de sécurité AWS et bloquer le port 6379 pour le public.

42
Ashutosh Agrawal

J'ai eu le même problème (fonctionnant sur AWS) et j'ai découvert que notre port redis était exposé. Vous avez probablement eu la même chose. Quelqu'un déconnait.

EDIT: La solution: réinitialiser votre mot de passe redis puis (en supposant que vous l'exécutez en tant que service) redémarrez le service en fournissant le nouveau mot de passe

3
haren

A eu exactement le même problème lors de l'exécution de Redis sur une instance AWS. Je redémarrerais redis-server sans aucun mot de passe (#requirepass ''), fonctionnerais bien pendant quelques heures, puis lancerais "NOAUTH Authentication required" et finirais par devoir redémarrer redis-server.

Vérifié les paramètres des groupes de sécurité dans AWS pour l'instance et vu le port 6379 ouvert au public (0.0.0.0/0). Nous avons limité l'accès au port à notre seul serveur qui doit y accéder et nous n'avons plus vu le problème depuis!

P.S. Il s'agit de ma toute première contribution à StackOverflow. Merci pour l'aide!

2
Justin Lee

J'ai le même problème. après cela, je suis défini requirepass pour le serveur redis.
Et ajoutez ce mot de passe dans initializer/redis.rb

$redis = Redis.new(:password=>"****") 

Ça fonctionne bien

1
Son Nguyen

J'ai le même problème, j'ai trouvé que c'était causé par quelqu'un qui avait commencé à redis par un autre redis.cnf fichier de configuration, j'ai donc arrêté redis-server puis démarré redis-server spécifiez un fichier de configuration.

redis-server /etc/redis.cnf

Ensuite, tout fonctionne bien.

0
fangxing

Si vous avez apporté des modifications au fichier de configuration, n'oubliez pas de redémarrer le service redis avec la commande Sudo service redis-server restart.

Edit: Si vous exécutez le service redis en mode production, alors redis nécessite un mot de passe pour s'exécuter. Pour cela, vous devez définir un mot de passe dans votre fichier de configuration présent dans /etc/redis.

Vous devez définir requirepass ******* Dans ce fichier sous la section ########### SECURITY ############.

Redémarrez ensuite votre serveur Sudo service redis-server restart.

Après cela, ajoutez ce mot de passe dans votre fichier de configuration ou d'initialisation où vous avez défini votre nom d'hôte et votre port. Exemple:

$redis = Redis.new(:Host => 'localhost', :port => 6379, :password => "*******")

0
Akhil Sharma