Linux 下 Redis 配置密码之后无效
Redis 配置密码
Redis 默认不需要口令即可访问,是非常不安全的。可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让 Redis 服务更安全。
方式一:临时密码
使用CONFIG set requirepass 密码
命令来设置密码。设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。建议配置密码之后退出客户端,重新连接。
127.0.0.1:6379> CONFIG set requirepass "123456"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "123456"
方式二:永久密码
配置文件配置密码,修改默认# requirepass foobared
配置,将#去掉,foobared改为自己的密码即可。配置密码之后重新启动 Redis 服务器。
查看密码项
使用CONFIG get requirepass
命令查看是否设置了密码验证,默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
密码无效
上述密码配置方式二在配置之后,会出现密码无效的情况,也就是不输入密码也可以使用。常见的问题是在启动Redis 时没有指定配置了密码的配置文件启动。
有部分情况在指定了配置文件启动之后依旧密码无效,此时可以检查配置文件中是否包含类似如下信息:
user default on nopass ~* &* +@all
意思时默认账号不使用密码。将其注释掉或者删掉,重新启动 Redis 密码就能生效了。
密码验证
使用AUTH password
命令验证密码
127.0.0.1:6379> AUTH 123456
OK
127.0.0.1:6379> SET mykey "Hello Password"
OK
127.0.0.1:6379> GET mykey
"Hello Password"