Redis 引发 "NOAUTH Authentication required" 错误但没有密码设置
Redis raises "NOAUTH Authentication required" error but there is no password setting
当我通过命令连接到 Redis 服务器时出现错误 NOAUTH Authentication required:redis-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
。
建议在命令行中给密码加上双引号。
当我通过命令连接到 Redis 服务器时出现错误 NOAUTH Authentication required:redis-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
。
建议在命令行中给密码加上双引号。