Hướng dẫn tạo và sử dụng SSH KEY

Tóm tắt nội dung

Bài hướng dẫn chỉ sử dụng với VPS cài đặt OS Linux

Tại sao phải sử dụng SSH KEY

Một trong các phương thức đăng nhập vào VPS, máy chủ, cloud server (cả vật lý lẫn máy chủ ảo) khá an toàn đó là việc sử dụng SSH Key để thay thế cho mật khẩu. Mặc định mỗi VPS hay máy chủ bạn sẽ đăng nhập vào bằng username root và mật khẩu root mà nhà cung cấp đã gửi cho bạn lúc thuê VPS, tuy nhiên việc sử dụng mật khẩu luôn có 2 nguy cơ lớn là:
  • Bạn sẽ mất hoàn toàn nếu lộ mật khẩu.
  • Các attacker có thể sử dụng Brute Force Attack để dò tìm mật khẩu.
  • Nói chung các cuộc tấn công phá hoại nhằm kiểm soát máy chủ thông qua chiếm quyền đăng nhập bằng mật khẩu, ở đây password SSH
Do đó, Cloud Việt khuyến khích các bạn làm quen với SSH Key để đăng nhập vào VPS, cũng như sử dụng nó để xác thực các kết nối từ bên ngoài vào cho an toàn hơn.

Cơ chế xác thực bằng SSH Key

Ngoài cơ chế xác thức bằng cách nhập mật khẩu như trên còn có cơ chế sử dụng SSH Key để xác thực. Để tạo nên xác thực này cần có hai file, một file lưu Private Key và môt lưu Public key
  • Public Key khóa chung, là một file text – nó lại lưu ở phía Server SSH, nó dùng để khi Client gửi Private Key (file lưu ở Client) lên để xác thực thì kiểm tra phù hợp giữa Private Key và Public Key này. Nếu phù hợp thì cho kết nối.
  • Private Key khóa riêng, là một file text bên trong nó chứa mã riêng để xác thực (xác thực là kiểm tra sự phù hợp của Private Key và Public Key). Máy khách kết nối với máy chủ phải chỉ ra file này khi kết nối SSH thay vì nhập mật khẩu. Hãy lưu file Private key cận thận, bất kỳ ai có file này có thể thực hiện kết nối đến máy chủ của bạn
II. Cách tạo SSH KEY và đăng nhập VPS bằng sử dụng SSH KEY

1. Nếu các bạn sử dụng Linux

a. Cách tạo SSH KEY Bật terminal trên máy linux của bạn lên và thực hiện theo các bước sau. Thực hiện câu lệnh sau để tạo Public key
# ssh-keygen -t rsa
Sau khi thực hiện câu lệnh này hệ thống sẽ yêu cầu bạn nhập passphrase (tại đây bạn không cần nhập cũng được ấn enter cho đến khi kết thúc, nhưng Cloud Việt khuyên bạn nên nhập vào trường này vì nó giống bảo mật 2 lớp cho VPS của bạn.) b. Cấu hình file sshd_config
# vi /etc/ssh/sshd_config
Thay đổi 2 dòng
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys
Trong đó .ssh/authorized_keys cho biết, tìm Public key tại file .ssh/authorized_keys của User. Có nghĩa là Public key sẽ phải có cho từng User kết nối, và nó lưu dưới thư mục của User. Với việc copy này thì đoạn mã SSH Key vừa tạo trên máy linux của bạn sẽ được chuyển vào VPS tại thư mục
/root/.ssh/authorized_keys
Lưu ý – Lỗi hay gặp không kết nối được SSH KEY: thường là lưu file public key ở Server ở các thư mục không được chmod phù hợp. Nếu user có tên là abc, thì chmod phù hợp là:
/root/abc 700 
/root/abc/.ssh 700 
/root/abc/.ssh/authorized_keys 600
Tương tự ở bài này bạn lưu thông tin: /root/.ssh/authorized_keys
#chmod 700 /root/.ssh 
#chmod 600 /root/.ssh/authorized_keys
c. Cách đưa SSH KEY vào trong VPS client chạy linux (centos 7) Tiếp đến chúng ta cần copy đoạn Key này tới VPS server của các bạn, ngay tại máy Linux client của các bạn ta thực hiện lệnh sau:
#scp -r root@IP Server: /root/.ssh/id_rsa /root
File private key được copy vào thư mục /root/.ssh/id_rsa c. Đăng nhập SSH từ máy linux tới VPS Sau khi copy xong các bạn thực hiện ssh tới VPS theo lệnh sau.
# ssh -i /root/.ssh/id_rsa root@IP server
Thông báo sau sẽ hiện ra, và lúc này bạn không cần nhập password SSH nữa.

2. Nếu bạn sử dụng Windows

a. Cách sử dụng phần mềm Putty-Gen để tạo SSH KEY Nếu bạn sử dụng Windows thì sẽ dùng phần mềm PuTTY-Gen để tạo SSH, bạn có thể tải PuTTY-Gen tại đây. Tải xong bạn mở ra, bạn chọn các tùy chọn như trong ảnh dưới rồi ấn Generate. Chú ý:
  • Trong lúc tạo, bạn hãy rê chuột vòng vòng màn hình cho đến khi nó tạo xong.
  • Sau khi tạo xong, bạn sẽ thấy nó hiện ra thế này.
Bây giờ hãy đặt passphrase cho nó bằng cách điền passphrase ở trên (không cần điền vào mục này cũng được). Sau đó ấn Save Private Key và lưu nó trên một nơi thật an toàn, tốt nhất nên đưa 1 bản lên Google Drive nếu bạn có sử dụng. Lưu ý:
  • Các bạn lưu ý khi lưu file ssh key đuôi file sẽ là .ppk và hãy lưu giữ nó cẩn thận vì nếu mất file này sẽ không thể kết nối đến VPS qua SSH được nữa.
  • Bạn không nên đưa file này cho bất kỳ ai tránh trường hợp người khác có thể login vào VPS của bạn khi họ có file này
Chú Ý:
  • Public key bắt đầu bằng từ khóa ssh-rsa-XXXXXX. Đây sẽ là cái đoạn mà bạn sẽ copy bỏ vào server để đối chiếu khi login bằng SSH KEY
b. Cách thêm SSH Key vào trong VPS Bây giờ hãy đăng nhập vào VPS với user mà bạn cần thêm key (thường thì là root, nhưng nếu VPS bạn có nhiều user thì sẽ cần thêm key cho tất cả user đó). Cách làm giống như trên đã hướng dẫn Sau đó gõ các lệnh dưới đây để tạo thư mục .ssh/ và file authorized_keys trong thư mục đó:
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Sau đó mở file authorized_keys trong thư mục .ssh ở thư mục gốc của user và copy toàn bộ ký tự của public key vào. c. Cách sử dụng SSH KEY trên Putty để login SSH vào VPS Để kiểm tra xem nó đã hoạt động chưa, hãy đăng nhập lại vào SSH với tài khoản vừa thêm SSH Key. Nếu bạn đăng nhập bằng Linux thì nó sẽ tự hỏi passphrase của bạn, còn nếu bạn đăng nhập ở Windows thông qua các phần mềm khác như PuTTY thì khi đăng nhập, bạn phải trỏ file private key vào để nó chứng thực. Hãy chọn đường dẫn của file SSH Key vừa mới tạo ra ở trên để xác thực khi login vào VPS

3.Cuối cùng:

Xong các bước bên trên về cách cấu hình và sử dụng SSH key trên Centos 7. Yêu cầu tiên quyết là bạn phải thử kết nối cloud server bằng SSH Key. Nếu thành công bạn tiến hành bước cuối cùng để đảm bảo máy chủ chỉ cho đăng nhập SSH từ xa:
  • Lưu file Private key id_rsa cẩn thận như trên Google drive, mail,…và tuyệt đối không share cho bất kỳ ai.
  • Tắt chế độ SSH  đăng nhập bằng user password
Để đảm bảo không có thể đăng nhập vào VPS của bạn bằng mật khẩu root và user nữa bạn cần vào file sshd_config
#   vi /etc/ssh/sshd_config
Tìm dòng -> PasswordAuthentication yes  Sau đó sửa yes -> no Hãy lưu lại và restart sshd
# systemctl restart sshd
Với việc này bạn đã vô hiệu hóa xác thực passwd qua SSH và bạn chỉ có thể đăng nhập bằng Private key mà bạn vừa tạo. Lưu Ý:
  • Với việc sử dụng SSH KEY và vô hiệu hóa xác thực passwd khi đăng nhập qua SSH thì việc bảo mật file SSH_KEY là rất quan trọng và các bạn phải luôn mang theo file này nếu muốn sử dụng SSH trên một máy tính khác, các bạn có thể lưu file này trên Google Drive hoặc trên một công cụ lưu trữ nào khác để đăng nhập VPS trên bất kỳ máy tính nào.
Chúc các bạn thành công. Nguồn tổng hợp
Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812