Redis 引发 "NOAUTH Authentication required" 错误但没有密码设置

Redis raises "NOAUTH Authentication required" error but there is no password setting

当我通过命令连接到 Redis 服务器时出现错误 NOAUTH Authentication requiredredis-cli 和 运行 ping 检查 Redis 是否正在工作。

我发现answer for NOAUTH Authentication required error描述只有当Redis设置了密码时才会出现这个错误,但是我查看了etc/redis/redis.conf处的Redis配置文件,没有密码设置。

有谁知道是否还有其他设置会导致此错误?感谢您的帮助。

p/s:我在Rails网络框架上使用Ruby,Redis数据库用于Sidekiq。

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

目前,我决定为Redis服务器设置密码,使其在运行ning时无法设置密码。

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

如果您对配置文件进行了任何更改,请不要忘记使用 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 => "*******")

我遇到了同样的问题(运行 在 AWS 上)并且发现我们的 redis 端口暴露了。你可能有同样的。有人在胡闹

编辑: 解决方案:reset your redis password and then (assuming you have it running as a service) restart the service providing the new password

我们也遇到了类似的问题。看起来有人扫描了 AWS,连接到所有 public redis 服务器,并且可能 运行“CONFIG SET REQUIREPASS ''”,从而锁定了 运行 redis 实例。一旦你重启 redis,配置就会恢复正常。

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

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

中添加该密码
$redis = Redis.new(:password=>"****") 

效果很好

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

检查实例的 AWS 中的安全组设置,发现端口 6379 向 public (0.0.0.0/0) 打开。我们将端口访问限制为我们唯一需要访问的服务器,此后就再也没有出现过这个问题!

P.S。这是我对 Whosebug 的第一次贡献。感谢您的帮助!

我有同样的问题,我发现是有人用另一个redis.cnf配置文件启动了redis,所以我停止了redis-server然后启动redis-server指定了一个配置文件。

redis-server /etc/redis.cnf

然后一切正常。

你可以试试:auth 'foobared' 应该是配置文件中的默认密码:/etc/redis/redis.conf

我是 运行 Redis,Docker 并且 REDIS_PASSWORD env 变量有一个身份验证密码。

使用docker exec命令连接到容器后,输入redis-cli命令连接到redis CLI。

然后输入auth {password},(密码就是用REDIS_PASSWORD设置的)

redis-cli命令行指定你的redis密码 例如:

redis-cli -h 127.0.0.1 -p 6379 -p "$your_password"

检查你的$your_password

建议在命令行中给密码加上双引号。