Redis預設配置是不需要密碼認證的,也就是說只要連線的Redis伺服器的host和port正確,就可以連線使用。這在安全性上會有一定的問題,所以需要啟用Redis的認證密碼,增加Redis伺服器的安全性。
1. 修改配置檔案
Redis的配置檔案預設在/etc/redis.conf
,找到如下行:
#requirepass foobared
去掉前面的註釋,並修改為所需要的密碼:
requirepass myPassword (其中myPassword就是要設定的密碼)
2. 重啟Redis
如果Redis已經配置為service
服務,可以通過以下方式重啟:
service redis restart
如果Redis沒有配置為service
服務,可以通過以下方式重啟:
/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf
3. 登入驗證
設定Redis認證密碼後,客戶端登入時需要使用-a
引數輸入認證密碼,不新增該引數雖然也可以登入成功,但是沒有任何操作許可權。如下:
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
使用密碼認證登入,並驗證操作許可權:
redis-cli -p 4981 -a Gd-1Gg*7Qf.4
$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
127.0.0.1:6379> config get requirepass
1) “requirepass”
2) “myPassword”
看到類似上面的輸出,說明Reids密碼認證配置成功。
除了按上面的方式在登入時,使用-a
引數輸入登入密碼外。也可以不指定,在連線後進行驗證:
$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth myPassword
OK
127.0.0.1:6379> config get requirepass
1) “requirepass”
2) “myPassword”
127.0.0.1:6379>
4. 在命令列客戶端配置密碼(redis重啟前有效)
前面介紹了通過redis.conf
配置密碼,這種配置方式需要重新啟動Redis。也可以通命令列客戶端配置密碼,這種配置方式不用重新啟動Redis。配置方式如下:
127.0.0.1:6379> config set requirepass newPassword
OK
127.0.0.1:6379> config get requirepass
1) “requirepass”
2) “newPassword”
注意:使用命令列客戶端配置密碼,重啟Redis後仍然會使用redis.conf
配置檔案中的密碼。
5. 在Redis叢集中使用認證密碼
如果Redis伺服器,使用了叢集。除了在master
中配置密碼外,也需要在slave
中進行相應配置。在slave
的配置檔案中找到如下行,去掉註釋並修改與master
相同的密碼即可:
注意:
yum 安裝redis , 設定密碼可以 直接開啟 requirepass ,後面接密碼
另外,必須關掉bind 127.0.0.1 之後,外部才能訪問redis,否則無法訪問,報錯 connect refuse。
本作品採用《CC 協議》,轉載必須註明作者和本文連結