Tạo SSH Key login VPS là cách an toàn nhất để quản trị VPS, thay vì đăng nhập bằng root password theo cách thông thường.

SSH là gìTrong bài viết này, ta sẽ tìm hiểu về SSH Key, cách tạo SSH key và thêm nó vào VPS, cũng như cách login VPS thông qua SSH key thay cho root password.

Hướng dẫn của bài viết đề cập cách tạo SSH Key và dùng login VPS cho Vultr, DigitalOcean, Linode, Amazon Web Services (AWS).

Tuy nhiên, bạn có thể áp dụng trên mọi VPS dùng Linux khác.

1. SSH là gì?

SSH là viết tắt của Secure Shell, là một loại giao thức (Protocol) mã hoá giúp đăng nhập máy chủ từ xa và quản trị dòng lệnh.

Giao thức đăng nhập vào máy chủ (server, VPS, hosting) qua SSH cần một cặp khoá SSH, gồm 2 khoá Public & Private:

  • Public Key: khoá này được upload lên máy chủ/ VPS cần đăng nhập & quản trị.
  • Private Key: khoá này lưu ở thiết bị của bạn để dùng khi cần gởi lệnh đăng nhập tới máy chủ/ VPS.
  • Keyphrase (không bắt buột nhưng nên có): nó là mật khẩu để mở private key – phòng trường hợp ai đó có private key thì họ vẫn cần thêm Keyphrase mới login được vào VPS. Với việc dùng thêm keyphrase để khóa private key, ta có thêm 1 lớp bảo mật tăng cường cực kỳ khó bị hack, trừ phi ai đó cài keylogger trên thiết bị bạn đang dùng.

Khi muốn login vào VPS, ta sẽ gởi Private Key đến IP của máy chủ thông qua phần mềm hỗ trợ SSH (SSH Client) để xác thực quyền truy cập vào VPS, nếu Private Key phù hợp với Public Key trên VPS thì quá trình login mới thành công.

Một SSH Key có thể chỉ định dùng chung cho nhiều VPS, ví dụ chúng ta tạo SSH Key và thêm vô tài khoản Vultr trước khi bắt đầu tạo VPS thì khi tạo VPS, key này sẽ hiển thị ở mục SSH Keys để chúng ta chọn dùng luôn cho nhanh:

Chọn SSH Key - VPS Vultr Free

2. Hướng dẫn Tạo SSH Key

Để dùng tính năng login SSH trên VPS, ta cần tạo SSH key, công cụ phổ biến để tạo cặp mã SSH là PuTTY Gen (PuTTY key Generator).

Khi cài phần mềm quản trị VPS PuTTY (SSH Client) thì ta có luôn PuTTy Gen.

Bạn tải PuTTY tại đây, cài đặt như mọi phần mềm thông thường:

  • PuTTY là phần mềm thuộc loại SSH Client giúp login vào VPS và quản trị VPS trên giao diện dòng lệnh. Ngoài PuTTY còn có các SSH Client phổ biến khác như ZOC Terminal hay OpenSSH.
  • Ưu điểm của PuTTy so với các trình Console thông thường (như CMD/ Command Prompt trên Windows) là PuTTy cho phép copy/ paste dòng lệnh, nên quá trình dùng VPS theo các bài hướng dẫn, bạn chỉ cần copy/paste các lệnh trong bài hướng dẫn chứ không phải gõ từng dòng lệnh.

Sau khi cài PuTTY xong, ta mở PuTTY Gen lên, giao diện nó khá thô sơ, ta click vào nút Generate để bắt đầu tạo SSH key, ở đây ta lưu ý tuỳ chọn mã hoá EdDSA (255 bits):

Tạo SSH Key với PuTTY Gen

Bạn cần rà chuột qua lại trên giao diện PuTTY Gen để quá trình tạo key nhanh hơn. Khi hoàn tất ta sẽ có Public Key và phần để nhập/ xác nhận mật mã keyphrase (không bắt buột).

Nếu muốn dùng keyphrase bạn nên đặt mật mã này dễ nhớ nhưng đừng đặt mật mã yếu như 1234 hay abc123,…

Ta sẽ có SSH Public Key theo định dạng OpenSSH, và Public Key – Private Key theo định dạng riêng của PuTTY Gen (.ppk), ta chọn Save để lưu lại Public Key và Private Key theo định dạng của PuTTY Gen. Các thông tin như hình này:

Tạo SSH Key - OpenSSH

Lưu SSH Key theo định dạng OpenSSH

Hiện nay đa số các Linux Server ưu tiên hỗ trợ public key theo định dạng chuẩn OpenSSH, nên nếu dùng public key theo chuẩn riêng của PuTTY ở mục Save public key hình trên thì sẽ không thêm được vào VPS.

Nên ta cần copy public key định dạng OpenSSH, lưu lại vào một file text để thêm vào VPS sau này:

SSH Public key - Vultr OpenSSHKhi kết nối VPS bằng PuTTy, thì dù đã thêm public key vào VPS theo định dạng OpenSSH hay .ppk, ta cũng chỉ cần dùng Private Key theo định dạng riêng của PuTTY (có đuôi .ppk).

Tuy nhiên, nếu dùng các SSH Client khác thay vì PuTTy, thì bạn cần dùng Private Key theo định dạng OpenSSH, do đó ta cũng nên chuyển Private Key sang định dạng OpenSSH để phòng trường hợp không dùng PuTTY mà dùng các SSH Client khác thì ta sẽ cần Private key này.

Ta chuyển qua tab Conversion và chọn Export OpenSSH key:

Export OpenSSH key

Đặt tên và lưu lại private key theo định dạng OpenSSH:

Private Key OpenSSH

Tóm lại, khi dùng PuTTY để login VPS qua SSH key, ta cần tạo và lưu 2 key sau:

  • Public key theo định dạng OpenSSH
  • Private key theo định dạng của PuTTY (.ppk)

Bây giờ ta sẽ tiến hành thêm Public key định dạng OpenSSH vào các tài khoản VPS.

3. Hướng dẫn Thêm SSH key vào VPS

Với các dịch vụ Cloud Server, VPS thì phần thêm và quản lý SSH key không nằm trong phần quản lý máy chủ, vps riêng lẻ mà nằm ở phần quản lý tài khoản chung.

Điều này cho phép bạn tạo, xóa và chỉ định dùng SSH Key linh hoạt chung hoặc riêng cho nhiều VPS khác nhau.

Thêm SSH Key vào VPS Vultr

Phần SSH trên Vultr nằm ở mục Account:

Tạo SSH trên VPS Vultr

Đầu tiên, ta mở file public key định dạng OpenSSH đã lưu lúc này, copy nội dung của nó:

SSH Public key - Vultr OpenSSH

Trên Vultr, mục SSH Keys, chọn Add New để mở phần nhập Public SSH Key trên tài khoản Vultr:

Add SSH

Đặc tên tuỳ ý và dán nội dung public key vừa copy vào, chọn Add SSH Key để đưa lên VPS:

 

Thêm SSH Key vào VPS Vultr

Ta có một SSH Key (Public) trên tài khoản, có thể xoá hoặc mở lên đổi lại key nếu muốn:

SSH Key trên Vultr

Rồi, bây giờ khi tạo VPS, ở mục SSH Keys sẽ hiển thị cái này để chúng ta chọn dùng.

Thực tế nếu có nhiều VPS, và cho phép nhiều người login quản trị, thì bạn nên tạo SSH Key và đặc tiên riêng cho từng người sử dụng độc lập để tăng tính bảo mật.

Thêm SSH Key vào VPS DigitalOcean

Ở DigitalOcean, thì phần SSH key nằm ở mục Settings -> Security:

Truy cập SSH Key trên VPS DigitalOcean

Thêm Public key (OpenSSH) tương tự như ở Vultr:

Thêm public key ssh vào vps digitalocean

Khi khởi tạo VPS, bạn chọn dùng SSH key dựa vào tên đã đặt ở trên.

Thêm SSH Key vào VPS Linode

Trên Linode, mục SSH không nằm ở tab Account mà ở Profiles (đường dẫn https://cloud.linode.com/profile/keys). Bạn click vào mũi tên bên phải Avatar để mở cửa sổ Profiles, click vào SSH Keys:

Thêm SSH Key vào VPS Linode

Cách thêm SSH Public Key cũng tương tự ở Vultr và Digital Ocean:

Add SSH Key VPS Linode

Copy public key định dạng OpenSSH để thêm vào tài khoản Linode:

Cách thêm SSH Key vào VPS Linode

Thêm SSH Key vào Amazon Web Services

Nếu dùng Amazon Web Services (AWS) thì phần SSH nằm ở mục Accounts của mỗi dịch vụ bạn dùng, ví dụ VHW đang mở dịch vụ AWS Lightsail, thì SSH như hình:

SSH Key trên VPS AWS Lightsail

 

Chúng ta có 2 tùy chọn dùng SSH với AWS:

  • Upload một public key có sẵn (định dạng OpenSSH)
  • Tạo mới một cặp SSH key ngay trên AWS (Pair Key)

Lưu ý là khi upload hoặc tạo mới SSH Public Key ở AWS bạn chỉ dùng được ở một location cụ thể chứ không dùng chung cho mọi location được.

Nếu chọn Upload key, ta sẽ chỉ định location và upload public key ở định dạng OpenSSH, sau đó dùng private key để login bằng PuTTy hoặc các SSH Client khác:

Chọn Location SSH Key AWS

 

Key được upload thành công sẽ hiển thị trong danh sách kèm thông tin location:

AWS SSH Key

Bạn cũng có thể tạo cặp key mới qua công cụ Create key pair của AWS, trước tiên bạn cũng cần chọn location sử dụng cặp SSH Key này:

Tạo ssh key aws lightsail

Đặt tên SSH Key mới sao cho dễ nhớ để khi cần có thể sử dụng nhanh:

Đặt tên SSH Key AWS

Sau khi tạo xong cặp SSH key mới, bạn có thể tải file private key ở định dạng .pem về:

Tải private key SSH AWS

Để có thể dùng PuTTY để login AWS bằng SSH Private Key vừa tải về, bạn cần chuyển nó sang định dạng riêng (.ppk) của PuTTY. Để chuyển đổi, ta mở PuTTY Gen lên và chọn File -> Load private key:

Load SSH Key PuTTy

Để chọn load file .pem, ta cần chọn chế độ xem All Files trong cửa sổ PuTTY, vì mặc định PuTTY chỉ hiển thị các file có định dạng .ppk:

Thông báo load file .pem thành công:

Load SSH thành công

Ta có file public ssh key ở định dạng OpenSSH (cái đã được thêm vào tài khoản AWS khi bạn chọn tạo cặp key mới – Create a new SSH key pair.

Ở đây ta chỉ cần file SSH Private Key định dạng .ppk của PuTTY để có thể dùng nó login vào AWS, bạn nên đặt mật mẫ (phrase key) để bảo mật rồi chọn Save private key để lưu file này là xong:

Lưu Private Key AWS

 

Đặc tên cho dễ nhớ để dùng nhanh sau này:

Xong!

4. Login vào Console VPS qua SSH key bằng PuTTY

Để login vào giao diện dòng lệnh (Console) của VPS Linux, ta sẽ sử dụng các phần mềm chuyên dụng gọi là SSH Client, nổi tiếng như Bitvise SSH, OpenSSH, ZOC Terminal, PuTTY.

Trong đó PuTTY là phần mềm miễn phí hoàn toàn, được sử dụng rộng rãi, hỗ trợ copy/paste rất tốt.

Tải PuTTY tại đây và cài đặt như mọi phần mềm thông thường. Khi cài PuTTY, bạn cũng đồng thời cài trình tạo SSH Key PuTTY Gen như đã nói ở đầu bài viết.

(*) Bạn cần tắt phần mềm gõ tiếng Việt (Unikey,…) khi login và thực hiện lệnh Linux trên VPS bằng SSH Client như PuTTY để tránh phát sinh các ký tự ngoài ý muốn khiến tên user/ pass bị nhập sai và gây ra lỗi sai pass hoặc Our key refused khi đăng nhập.

Giờ ta sẽ đăng nhập vào VPS bằng SSH key.

Mở PuTTY lên, ta cần nhập IP của VPS, port SSH (mặc định ban đầu trên Linux là 22), bạn có thể đặt tên VPS và Save lại để tiện cho lần login sau. Bạn chỉ click Open ngay nếu muốn login bằng root password, còn muốn login với SSH Private Key, thì chưa click Open mà làm tiếp bước chọn SSH Key bên dưới:

Login VPS bằng PuTTY

Tiếp theo, bạn click vào mục Connection –> SSH -> Auth, rồi click Browse để chọn file SSH private key, khi login bằng PuTTY thì ta cần dùng private key theo định dạng của PuTTY (.ppk), còn dùng các phần mềm SSH Client khác thì dùng private định dạng thường (OpenSSH):

Login VPS bằng SSH Key qua PuTTY

Nhớ làm theo thứ tự hình trên nhé, sau khi click Open (4) màn hình Console hiện ra, ta nhập tên user là root rồi gõ Enter để xác nhận, nhập tiếp Keyphrase (rồi Enter) nếu khi tạo Private key ta có nhập mật mã bảo vệ Key passphrase. Nếu mọi thứ OK, thì ta sẽ đăng nhập thành công như thế này:

Cách login VPS bằng SSH Key

Cũng tương tự root password, Keyphrase sẽ không nhìn thấy được trên console, nên bạn gõ cẩn thận hoặc gõ vào file text rồi copy, paste cho chắc ăn (Right-click để paste vào màn hình console trên PuTTY).

Từ giờ trở đi, bạn có thể thực hiện mọi lệnh Linux trên của sổ console của PuTTY.

Đối với các lệnh phức tạp hoặc làm theo hướng dẫn thì bạn có thể copy nguyên lệnh đó rồi đưa chuột vào cửa sổ Console của PuTTY, lick chuột phải (Right-lick) để dán (paste) lệnh vào cửa sổ, rồi gõ Enter để thực thi lệnh.

PuTTY cũng hỗ trợ bôi đen nội dung trên chính cửa sổ Console để copy.

Mọi hướng dẫn quản lý và sử dụng VPS trên VHW đều dùng PuTTY, bạn có thể xem phần tiếp theo:

Tạo Website – Cài SSL Let’s Encrypt trên VPS trong 5 phút

5. Login vào mã nguồn VPS qua SSH key bằng WinSCP

Khác với PuTTY, phần mềm WinSCP thuộc loại phần mềm FTP Client (SSH File Transfer Protocol – SSH FTP), tương tự như FileZilla, FireFTP.

WinSCP giúp ta truy cập vào mã nguồn của VPS (Hệ diều hành Linux) để quản lý, chỉnh sửa hay thêm mới file/ folder trên hệ điều hành.

WinSCP rất cần thiết cho nhu cầu chỉnh sửa các thông số, cấu hình server, mã nguồn khi chạy website trên VPS vì thực hiện việc này trên giao diện dòng lệnh (Console) rất mất công do mọi thứ bạn phải gõ lệnh, còn với WinSCP, bạn có thể dễ dàng chỉnh sửa, xóa, tạo mới, di chuyển các file y như trình soạn thảo text editor (Notepad, WordPad,…).

Đầu tiên, bạn hãy tải WinSCP tại đây và cài đặt như mọi phần mềm khác.

Mở WinSCP lên, chọn New Session, New Site để khai báo thông tin login cho một VPS mới:

WinSCP login VPS

WinSCP login SSH Key

Nhập các thông tin sau:

  1. IP của VPS/ Server
  2. Port Root: cổng mặc định của root user là 22, nếu bạn đổi cổng này sang số khác thì nhớ nhập cho đúng
  3. User: root
  4. Root password: chúng ta không login bằng root password nên bỏ trống

Sau đó, click vào nút Advanced để mở tùy chọn thêm SSH Private Key, chọn đường dẫn file Private Key bạn đã lưu, rồi click OK:

SSH Key login vps WinSCP

Nhấp nút Save để lưu lại thông tin login:

Đặt tên sao cho dễ nhớ để lần sau click một cái là login luôn với SSH Private Key đã lưu sẵn đường dẫn:

Lưu SSH Key WinSCP Login VPS bằng WinSCP

Ta login thẳng vào thư mục gốc (root) của hệ điều hành Linux, tại đây bạn có thể mở bất cứ thư mục, file nào để chỉnh sửa, xóa, thêm…:

Root Folder VPS

Ví dụ, ta có thể mở thư mục chứa code wordpress nằm ở đường dẫn /home/ten_web_site/public_html/:

Public_HTML VPS

Và mở file cấu hình WordPress (wp-config.php) chỉnh sửa các thông số như file text bình thường:

Chỉnh sửa WP-Config trên VPS

Bạn cũng có thể chọn download và upload qua WinSCP nhưng tốc độ down/up khá chậm, nên ta không ưu tiên dùng WinSCP cho nhiệm vụ down/ up.

Từ giờ, bạn có thể login vào VPS WinSCP bằng SSH Private Key để quản lý mã nguồn và cấu hình các file hệ thống trên VPS dễ dàng như trên File Manager của các dịch vụ hosting cPanel.

Chúc thành công!

17279

Khóa học Pro WordPress Web Design 2022

Bạn có thể tự xây dựng Website chuẩn SEO chuyên nghiệp với tài nguyên WP bản quyền trị giá $1000

(*) Vui lòng kiểm tra email để xác thực hoàn tất đăng ký. Nếu không thấy email bạn nên kiểm tra tab Quảng cáo và Spam và kéo email vào tab Chính (Primary) nhé!

LEAVE A REPLY

Please enter your comment!
Please enter your name here