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

Tha*_*anh 33 ruby-on-rails redis sidekiq ruby-on-rails-4

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

我找到了NOAUTH Authentication required错误的答案,该错误描述了只有当Redis设置了密码时才会发生此错误,但我检查了Redis配置文件,etc/redis/redis.conf并且没有设置密码.

Redis配置

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

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

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

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

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

小智 43


我们也遇到了类似的问题.看起来有人去扫描AWS并连接到所有公共redis并可能运行"CONFIG SET REQUIREPASS''",从而锁定正在运行的redis实例.一旦你重新启动 Redis的,在配置恢复到正常状态.

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


Thu*_*ika 13

我正在使用 Docker 运行 Redis,并且有一个带有REDIS_PASSWORDenv 变量的身份验证密码。

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

然后输入auth {password},(用 设定的密码REDIS_PASSWORD


jia*_*gli 9

在命令行中指定您的 redis 密码,redis-cli例如:

redis-cli -h 127.0.0.1 -p 6379 -a "$your_password"
Run Code Online (Sandbox Code Playgroud)

检查你的$your_password

建议在命令行中为密码添加双引号。


Far*_*had 5

Redis 密码已保存在redis.conf/etc/redis/目录中,您可以通过以下方式查看/编辑 Redis 配置/密码:

sudo vim /etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)

滚动到该SECURITY部分并查找注释指令(用于/输入要在 vim 中搜索的短语并按 Enter 键):

# requirepass foobared
Run Code Online (Sandbox Code Playgroud)

通过删除 来取消注释#,并将 foobared 更改为安全密码(通过按esc键和保存更改:wq)。

您可以用来openssl生成一个安全密码,以便在服务器上的实际项目中使用:

openssl rand 60 | openssl base64 -A
Run Code Online (Sandbox Code Playgroud)

并将安全密码复制到redis.conf 或使用简单密码在本地计算机上进行学习。更改密码后不要忘记通过以下方式重新启动redis服务:

sudo systemctl restart redis.service
Run Code Online (Sandbox Code Playgroud)

用于redis-cli进入redis shell。然后使用 输入密码auth

127.0.0.1:6379> auth your_password
OK
127.0.0.1:6379>
Run Code Online (Sandbox Code Playgroud)

积分归 DigitalOcean 社区 阅读有关保护 Redis 的更多信息