Redis引发错误:NOAUTH需要身份validation,但没有密码设置

当我通过命令连接到Redis服务器时,我收到错误NOAUTH身份validationredis-cli并运行ping以检查Redis是否正常工作。

我找到NOAUTH身份validation所需的错误答案 ,该错误描述了此错误仅在Redis设置密码时发生,但我在etc/redis/redis.conf检查了Redis配置文件,并且没有密码设置。

Redis配置

有没有人知道,如果有其他设置可以导致此错误? 谢谢你的帮助。

p / s:我使用的是Ruby on Rails Web框架,Redis数据库用于Sidekiq。

编辑:Redis版本是2.8.4。 服务器托管在AWS上。

目前,我决定为Redis服务器设置一个密码,以便在运行时无法设置密码。

(重启Redis服务器时,它将正常工作。您可以运行sudo service redis-server restart来重启Redis服务器。)


我们也遇到了类似的问题。 看起来有人去扫描AWS并连接到所有公共redis并可能运行“CONFIG SET REQUIREPASS””,从而锁定正在运行的redis实例。 重新启动 redis后,配置将恢复正常。

最好的办法是使用AWS安全组策略并阻止端口6379公开。

我有同样的问题(在AWS上运行)并发现我们的redis端口已暴露。 你可能也一样。 有人搞乱了。

编辑:解决方案: 重置您的redis密码 ,然后(假设您将其作为服务运行)重新启动提供新密码的服务

我也有同样的问题。 之后我为redis服务器设置了requirepass
并在initializer/redis.rb添加该密码

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

它工作正常

在AWS实例上运行Redis时遇到完全相同的问题。 我会重新启动redis-server而没有任何密码要求(#requirepass”),可以正常工作几个小时,然后会抛出“NOAUTH Authentication required”,最终将不得不重新启动redis-server。

在AWS中检查了实例的安全组设置,并看到对公众开放的端口6379(0.0.0.0/0)。 我们限制了端口访问我们唯一需要访问的服务器,从那时起就没有出现问题!

PS这是我对StackOverflow的第一次贡献。 谢谢您的帮助!

如果您在配置文件中进行了任何更改,请不要忘记使用sudo service redis-server restart命令重新启动redis服务。

编辑:如果您在生产模式下运行redis服务,则redis需要密码才能运行。 为此,您需要在/etc/redis中的配置文件中设置密码。

您需要在########### SECURITY ############部分的该文件中设置requirepass *******

然后重启服务器sudo service redis-server restart

之后,在您已设置主机名和端口的配置或初始化文件中添加该密码。 例:

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

我有同样的问题,我发现它是由另一个redis.cnf配置文件启动redis引起的,所以我redis.cnf redis-server然后启动redis-server指定配置文件。

 redis-server /etc/redis.cnf 

然后每件事情都很好。