2011-09-24 47 views
25

Tôi đang làm việc với redis trên máy cục bộ của mình nên tôi không thực sự cần phải thiết lập mật khẩu để kết nối với máy chủ với ứng dụng khách php của mình (tôi đang sử dụng predis làm ứng dụng khách). Tuy nhiên, tôi đang chuyển ứng dụng của mình sang máy chủ trực tiếp, vì vậy tôi muốn thiết lập mật khẩu để kết nối với máy chủ redis của mình.redis: đặt mật khẩu cho redis

Tôi có vài câu hỏi:

  • Tôi đã kiểm tra khắp nơi trên internet về cách thiết lập mật khẩu và có vẻ như tôi cần phải thêm mật khẩu trong redis.conf. Tôi không thể tìm thấy những gì tôi nên thêm chính xác vào tập tin cấu hình để thiết lập mật khẩu.

  • cũng bằng predis cách tôi nên thêm mật khẩu. Tôi đang sử dụng các mảng sau đây của thông số để kết nối đến máy chủ redis

    $ my_server = array ('host' => '127.0.0.1', 'cổng' => 6379, 'cơ sở dữ liệu' => 1);

tôi nên thêm mật khẩu theo cách này?

> $my_server = array('host'  => '127.0.0.1','port'  => 
> 6379,'database' => 1,'password'=>password); 
  • câu hỏi cuối cùng, tôi đang cố gắng để ngăn chặn redis-server của tôi trên máy chủ trực tiếp. Mỗi lần tôi nhập lệnh sau, tôi tiếp tục nhận được thông báo lỗi tương tự

    redis-server dừng

    [23.925] 23 tháng 9 20:23:03 # Fatal error, không thể mở tập tin cấu hình 'dừng lại'

    thường trên máy tính địa phương của tôi, tôi nhập

    /etc/init.d/redis-server dừng

để ngăn chặn máy chủ redis nhưng nó không làm việc trên máy chủ trực tiếp của tôi vì không có quá trình gọi là redis-server trong /etc/init.d tôi

Trả lời

45

Để thiết lập mật khẩu, chỉnh sửa tập tin redis.conf của bạn, tìm dòng

# requirepass foobared 

này Sau đó, bỏ ghi chú nó và thay đổi foobared vào mật khẩu của bạn. Hãy chắc chắn rằng bạn chọn một cái gì đó khá dài, 32 ký tự hoặc như vậy có lẽ sẽ là tốt, thật dễ dàng cho một người dùng bên ngoài để đoán lên trên 150k mật khẩu một giây, như các ghi chú trong tập tin cấu hình đề cập đến.

Để xác thực bằng mật khẩu mới của bạn bằng cách sử dụng predis, cú pháp bạn đã hiển thị là chính xác. Chỉ cần thêm mật khẩu làm một trong các tham số kết nối.

Để tắt redis ... kiểm tra trong tập tin cấu hình của bạn cho các thiết lập pidfile, nó có lẽ sẽ

pidfile /var/run/redis.pid 

Từ dòng lệnh, hãy chạy:

Điều đó sẽ cung cấp cho bạn id quá trình của máy chủ đang chạy, sau đó chỉ cần hủy quy trình bằng cách sử dụng pid đó:

kill 3832 

Cập nhật

Tôi cũng muốn thêm, bạn cũng có thể thực hiện /etc/init.d/redis-server stop mà bạn đang sử dụng để làm việc trên máy chủ trực tiếp của mình. Tất cả các tệp đó trong /etc/init.d/ chỉ là các kịch bản lệnh shell, lấy tập lệnh redis-server ra khỏi máy chủ cục bộ của bạn và sao chép nó vào máy chủ trực tiếp ở cùng một vị trí, và sau đó chỉ cần xem nó là gì với vi hoặc bất kỳ thứ gì bạn thích sử dụng, bạn có thể cần phải sửa đổi một số đường dẫn và như vậy, nhưng nó sẽ khá đơn giản.

+0

này dường như không làm việc trên Windows. Tôi đã thử cả hai tập tin conf. Tôi đã thử Redis khởi động lại trong nhiều kết hợp. Điều duy nhất làm việc là: "redis-cli config set requirepass somepass". Ngoài ra, mỗi lần máy chủ được khởi động lại/tắt máy, nó đã mất mật khẩu. Vì vậy, tôi đoán, đó là với cửa sổ. – Jeffz

+0

Tùy thuộc vào quy trình cài đặt đã chọn, chúng tôi có thể có tệp cấu hình Redis là "vi /etc/redis/redis.conf" hoặc "vi /etc/redis/6379.conf" (ví dụ) trong đó "6379" là giá trị được chọn cho cổng! –

1

i couldnt tìm thấy mặc dù những gì tôi nên thêm chính xác đến cấu hình tệp để thiết lập mật khẩu.

Tệp cấu hình phải được đặt tại /etc/redis/redis.conf và mật khẩu có thể được thiết lập trong phần AN TOÀN nên nằm giữa phần REPLICATION và LIMITS. Thiết lập mật khẩu được thực hiện bằng cách sử dụng chỉ thị requirepass. Để biết thêm thông tin, hãy thử xem AUTH mô tả lệnh.

9
sudo nano /etc/redis/redis.conf 

tìm và dòng bỏ ghi chú # requirepass foobared, sau đó khởi động lại máy chủ

bây giờ bạn có mật khẩu là foobared

31

bạn cũng có thể sử dụng lệnh sau trên máy khách

cmd ::config set requirepass [email protected]$12E45

lệnh trên sẽ đặt [email protected]$12E45 dưới dạng mật khẩu máy chủ redis.

+0

Chỉ cần thêm: Như đã đề cập tại http://www.tutorialspoint.com/redis/redis_security.htm để đăng nhập qua redis-cli, hãy truy cập vào vỏ redis bằng cách chạy 'redis-cli.exe'. Sau đó nhập 'AUTH '. – arun

+5

Và để vô hiệu hóa xác thực mật khẩu, chỉ cần sử dụng 'config set requirepass" "' – arun

+2

Và nó sẽ thiết lập lại cũ nếu bạn khởi động lại redis. Vì vậy, thêm vào tập tin conf là tốt. – theGamblerRises

2

mở redis tập tin cấu hình

sudo nano /etc/redis/redis.conf 

bộ cụm từ mật khẩu

thay

# requirepass foobared 

với

requirepass YOURPASSPHRASE 

redis restart

redis-server restart 
1

sử dụng redis-cli:

[email protected]:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password 
OK 

này sẽ thiết lập mật khẩu tạm thời (cho đến khi redis hoặc máy chủ khởi động lại)

mật khẩu kiểm tra:

[email protected]:~# redis-cli 
127.0.0.1:6379> AUTH secret_password 
OK 
1

Đối với điều đó, bạn cần phải cập nhật tệp cấu hình redis. Mặc định, không có bất kỳ mật khẩu nào cho redis.

01) tập tin cấu hình mở redis

sudo vi /etc/redis/redis.conf 

tìm requirepass lĩnh vực dưới AN phần và bỏ ghi chú rằng field.Then thiết lập mật khẩu của bạn thay vì "foobared"

# requirepass foobared 

Nó sẽ giống như,

requirepass YOUR_PASSWORD 

Sau đó khởi động lại redis và bắt đầu redis-cli.

Nếu bạn cần kiểm tra xem bạn đã đặt mật khẩu chính xác hay chưa, bạn có thể chạy các dấu phẩy dưới đây bằng redis-cli.

[email protected] ~ $ 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 


[email protected] ~ $ 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 

'

2

bước 1. redis dừng máy chủ sử dụng dưới lệnh /etc/init.d/redis-server dừng bước lệnh 2. Nhập: sudo nano /etc/redis/redis.conf

bước 3.find # requirepass foobared từ và loại bỏ # và thay đổi foobared mật khẩu của bạn

cũ. requirepass root

0

Làm cách nào để đặt lại mật khẩu?

bước 1. redis dừng máy chủ sử dụng dưới lệnh /etc/init.d/redis-server dừng

bước lệnh 2. Nhập: nano sudo /etc/redis/redis.conf

bước 3.find # requirepass foobared từ và loại bỏ # và thay đổi foobared thành PASSWORD CỦA BẠN

ví dụ: requirepass gốc

2

Ví dụ:

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