如何为 Redis 设置密码?

我在我的本地机器上使用 redis,所以我不需要设置密码来连接到我的 php 客户端的服务器(我使用 predis 作为客户端)。但是,我正在将我的应用程序移动到一个活动服务器上,所以我想设置一个密码来连接到我的 Redis 服务器。

我有几个问题:

  • 我在互联网上查看了如何设置密码,看起来我需要在 redis.conf 中添加密码。但是,我找不到应该向配置文件中添加哪些内容来设置密码。

  • 也在 predis 我应该如何添加密码。我使用以下参数数组来连接 Redis 服务器

    $my _ server = array (‘ host’= >’127.0.0.1’,‘ port’= > 6379,‘ database’= > 1) ; < br/>

我应该这样添加密码吗?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • 最后一个问题,我正在试图停止服务器上的红迪斯服务器。每次输入以下命令,都会收到相同的错误消息

    重新编辑-服务器停止

    [23925]23 Sep 20:23:03 # 致命错误,无法打开配置文件‘ stop’

    我通常在本地机器上输入

    /etc/init.d/redis-server stop

可以停止 redis 服务器,但是它在我的活动服务器上无法工作,因为在我的/etc/init.d 中没有叫做 redis-server 的进程

351261 次浏览

虽然我不能找到什么,我应该添加到配置确切 文件设置密码。

配置文件应该位于 /etc/redis/redis.conf,密码可以设置在 SECURITY 部分,该部分应该位于 REPLATION 和 LIMITS 部分之间。密码设置是使用必需通行指令完成的。有关更多信息,请尝试查看 命令描述。

要设置密码,请编辑 redis.conf 文件,找到这一行

# requirepass foobared

然后取消注释,并更改为您的密码。确保你选择的密码相当长,32个字符左右可能会比较好,正如配置文件中提到的那样,对于外部用户来说,每秒钟猜测超过15万个密码是很容易的。

要使用 predis 进行身份验证,您显示的语法是正确的。只需添加密码作为连接参数之一。

要关闭 reis... 请检查配置文件中的 pidfile设置,它可能是

pidfile /var/run/redis.pid

从命令行运行:

cat /var/run/redis.pid

这将给出正在运行的服务器的进程 id,然后使用这个 pid 杀死进程:

kill 3832

更新

我还想补充,你也可以使 /etc/init.d/redis-server stop你用来工作在你的现场服务器。所有/etc/init.d/中的文件都是 shell 脚本,从本地服务器上提取 redis-server 脚本,并将其复制到相同位置的活动服务器上,然后看看它对 vi 或者其他你喜欢使用的东西做了什么,你可能需要修改一些路径之类的,但是应该很简单。

sudo nano /etc/redis/redis.conf

查找并取消注释行 # requirepass foobared,然后重新启动服务器

现在你的密码是 foobared

也可以在客户端使用以下命令

Cmd: : config set requirepass p@ss$12E45

以上命令将 p@ss$12E45设置为 redis服务器密码。

打开重排配置文件

sudo nano /etc/redis/redis.conf

设置密码

更换

# requirepass foobared

requirepass YOURPASSPHRASE

重新启动重新设计

redis-server restart

使用 redis-cli:

root@server:~# redis-cli
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK

这将临时设置密码(直到重新编辑或服务器重新启动)

测试密码:

root@server:~# redis-cli
127.0.0.1:6379> AUTH secret_password
OK

为此,您需要更新 redis 配置文件。默认情况下,redis 没有任何密码。

01)打开重排配置文件

sudo vi /etc/redis/redis.conf

保安部分找到 通行证字段并取消该字段的注释。然后设置密码而不是 “吃掉”

# requirepass foobared

应该是,

requirepass YOUR_PASSWORD

然后重新启动重新编辑并开始重新编辑。

如果需要检查是否正确设置了密码,可以在 redis-cli 中运行以下命令。

sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> exit




sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> set key2 check
OK
127.0.0.1:6379> get key2
"check"
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> get key1
"20"
127.0.0.1:6379> exit

`

  1. 使用以下命令停止 Redis 服务器

    /etc/init.d/redis-server stop
    
  2. 输入命令: sudo nano /etc/redis/redis.conf

  3. 找到要求通行密码,删除 # 并更改为您的密码

需要通过根

如何设置重设密码?

步骤1。使用以下命令停止 Redis 服务器 /etc/init.d/redis-server stop

步骤2. 输入命令: sudo nano/etc/redis/redis.conf

第三步。找到 # 要求通过 fobared 单词和删除 # 和改变 fobared 到您的密码

需要通过根

例如:

redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "mypass"
OK
redis 127.0.0.1:6379> AUTH mypass
Ok

对于那些使用 docker-compose的人来说,在没有任何配置文件(如 redis.conf)的情况下设置密码非常容易。以下是你通常使用 Redis 官方图片的方式:

redis:
image: 'redis:4-alpine'
ports:
- '6379:6379'

要设置自定义密码,您只需更改以下内容:

  redis:
image: 'redis:4-alpine'
command: redis-server --requirepass yourpassword
ports:
- '6379:6379'

一切将正常启动,您的 Redis 服务器将受到密码保护。

关于细节,这篇博文似乎支持这个想法。

运行命令

redis-cli




redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "amolpass"
OK
redis 127.0.0.1:6379> AUTH amolpass
Ok

——————或————————

获取 Redis 安装路径

Redis-cli config get dir

配置文件路径

sudo find / -name "redis.conf" -exec grep -H "^dir" {} \; 2> /dev/null

生成与这个密码相同的密码:

Echo“ amol-pass”| sha1sum 输出 : 960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

Edit : /etc/redis/redis.conf
requirepass 960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

重启雷迪斯

 service redis-server restart


TEST Command :
redis-cli
set key1 10
(error) NOAUTH Authentication required.
auth your_redis_password

如果您在 Redis 重新启动时丢失了密码,并且正在将 Redis 作为 Windows 服务运行,那么您应该在 Windows-service. conf文件中也设置 通行证

在 REDIS 6之前的版本中,保护您的 REDIS 的唯一方法是打开您的 redis.conf,取消对 # requirepass行的注释,并添加您的密码。但是,这样做的缺点是,这是所有连接共享的全局密码。

requirepass iampwd

除非您需要向后兼容性,否则您应该迁移到 REDIS 6,而是使用 ACL 来创建拥有最少权限的用户

acl setuser dummyuser on >dummypwd allcommands allkeys

Https://redis.io/topics/acl

此错误意味着您的 Redis 实例中没有设置密码。如果从代码中发送认证信息,则可能会收到此消息。有两种方法可以解决。

  1. 打开 redis 配置文件。

    sudo nano /etc/redis/redis.conf
    

    您可以使用“ where is”选项来查找“ # requpass”

    取消注释密码行并设置新密码

    # requirepass yourpassword
    
  2. 打开终端并连接 Redis-cli

    redis-cli
    
  3. 设置密码

    CONFIG SET requirepass "yourpassword"
    
    
    
  4. 终于可以测试了

    AUTH yourpassword
    

就是这样!