如何在不存储密码的情况下登录redis-cli?

pot*_*ato 7 redis

我已将 redis-server 配置为使用带requirepass选项的密码。

运行时,redis-cli我有两个选项来访问数据库。

  1. 使用redis-cli -a mypassword命令。这将密码存储在 bash 历史记录中。每次运行它时,我都需要删除历史记录条目。
  2. AUTH mypassword在 redis-cli 内部使用。遗憾的是,此选项会将您的密码保存在 redis-cli 中,即使您在没有任何身份验证的情况下登录 redis-cli,也可以通过按向上箭头查看它。它确实可以在没有任何保护的情况下访问。

验证 redis-cli 的正确方法是什么?

Viv*_*k.N 10

REDISCLI_AUTH您可以在调用之前在环境变量中设置密码redis-cli。设置变量后,redis-cli无需使用开关指定密码即可访问-a。将使用连接到 Redis 服务器时redis-cli设置的密码。REDISCLI_AUTH

export REDISCLI_AUTH=your_secret_password
redis-cli -h hostname -p portnumber
Run Code Online (Sandbox Code Playgroud)


DDu*_*k99 5

您可以在 redis-cli 上输入。

redis-cli -h 1.1.1.1
1.1.1.1:6379> auth mypassword
OK
Run Code Online (Sandbox Code Playgroud)

或者您可以使用 shell 脚本。

#!/bin/bash
echo -n Password: 
read -s password
redis-cli -h 1.1.1.1 -a $
Run Code Online (Sandbox Code Playgroud)


for*_*ack 2

好问题!我也被这个问题搞糊涂了...

默认情况下,历史记录保存在以下文件中:$HOME/.rediscli_history. 但是,您可以通过将历史路径设置到环境变量中来更改历史文件的位置:REDISCLI_HISTFILE。特别是,如果您设置REDISCLI_HISTFILE/dev/nullredis-cli将不会保存任何历史记录。

export REDISCLI_HISTFILE=/dev/null