Bài viết được sự cho phép của blogchiasekienthuc.com
Secure Shell hay còn gọi là SSH hiện đang là giao thức phổ biến nhất để kết nối và quản lý các máy chủ chạy hệ điều hành Linux.
Nó cũng là một trong những giao thức cực kỳ bảo mật khi sử dụng một cặp Public Key và Private Key mà AWS
gọi là Key Pair
để kết nối giữa máy chủ và máy kết nối.
Cặp key này sẽ không thể bị giải mã bởi phương pháp Brute Force, vậy nên sẽ rất an toàn khi sử dụng. Và nó được rất nhiều webmaster lựa chọn làm phương thức bảo mật thay thế cho mật khẩu truyền thống.
Xem thêm nhiều việc làm AWS lương cao trên TopDev
Ở bài trước chúng ta đã biết cách tạo máy chủ ảo EC2 Instance Linux và lấy được Key Pair rồi. Còn trong bài viết này mình sẽ hướng dẫn cho các bạn cách kết nối SSH vào VPS EC2 nhé !
I. Để kết nối SSH vào máy chủ ảo EC2 trên Amazon AWS thì cần những gì?
Theo mặc định, muốn kết nối SSH thì bạn cần phải có đủ các thông tin gồm IP Public
(tức là địa chỉ IP của máy chủ ảo – VPS đó), Username
và Password
.
Mình cũng phải nói luôn, nếu đây lần đầu tiên bạn làm quen với Amazon EC2 thì việc tìm được thông tin username
để đăng nhập sẽ khá là khó nhằn và mất thời gian đấy.
Một phần là vì nó không giống như những dịch vụ khác luôn để username
mặc định là root
, mà thay vào đó mỗi hệ điều hành Linux trên Amazon EC2 lại có một username
khác nhau.
Dưới đây là danh sách username mặc định của một số hệ điều hành Linux trên Amazon EC2:
- Ubuntu, Debian Linux :
ubuntu
- Red Hat Enterprise Linux, OpenSUSE :
root
- CentOS Linux :
centos
- Amazon Linux, Red Hat Enterprise Linux, OpenSUSE Linux :
ec2-user
- Fedora Linux :
fedora
II. Cách kết nối SSH vào máy chủ ảo (VPS) EC2 Instance Linux trên Amazon AWS
Dưới đây là những cách kết nối SSH vào VPS trên Amazon AWS đơn giản nhất mà bạn các bạn có thể áp dụng, bạn hãy đọc qua một lượt các cách, xem cách nào bản cảm thấy OK thì dùng nhé.
Cách #1: Kết nối SSH vào EC2 Instance trực tiếp trên trình duyệt web
Đa số các nhà cung cấp VPS đều cho phép bạn kết nối SSH trực tiếp trên trình duyệt mà không cần biết bất cứ thông tin gì hết, rất nhanh và tiện, nhưng cách này sẽ khá lag và ít ai sử dụng.
Cách này thực ra chỉ dùng khi mình muốn check trạng thái máy chủ hoặc đã làm mất file Key Pair *.PEM
nên không thể kết nối bằng client được mà thôi.
Thực hiện:
+ Bước 1: Từ giao diện chính của Amazon EC2, bạn truy cập vào phần Instances
=> sau đó bấm chọn VPS mà bạn muốn kết nối để xem thông tin.
Mặc định các VPS trên EC2 sẽ không có tên, mà bạn phải phân biệt chúng bằng Instance ID
(khá là bất tiện). Bạn hãy click vào biểu tượng Edit trong ô Name
như hình bên dưới để đặt lại tên cho từng VPS nhé.
Điều này sẽ giúp bạn dễ quản lý hơn nếu bạn có nhiều VPS trong đây.
+ Bước 2: Tại trang Instance detail
này, bạn sẽ xem được tất cả thông tin về VPS của bạn, như là địa chỉ Private/ Public IPv4, Private/ Public IPv4 DNS, Instance type, trạng thái, hệ điều hành, Key Pair liên kết,…
Mấy cái này lát nữa chúng ta sẽ dùng tới, giờ bạn bấm Connect
để tiếp tục.
+ Bước 3: Tại đây, ở phần EC2 Instance Connect
, bạn sẽ có thể biết được những thông tin cần thiết cho việc kết nối SSH là Public IPv4
và Username
là ubuntu
=> Và giờ bạn hãy bấm Connect
để kết nối SSH tới EC2 Instance trực tiếp trên trình duyệt web.
Ngoài ra, Amazon còn hỗ trợ các phương thức kết nối khác như
Session Manage
r, dùng client SSH vàEC2 Serial Console
nữa. Cái này nếu muốn bạn tự tìm hiểu thêm nha.
Bạn cần chờ khoảng 30 giây để AWS đăng nhập SSH và ngay sau đó, bạn đã có thể bắt đầu làm việc với VPS của mình rồi.
Trước khi sử dụng cách này thì bạn cần phải lưu ý rằng: Các trình duyệt web hiện nay đều có tính năng tự reload lại tab (Automatic tab discard) khi không có sự tương tác của người dùng trong thời gian dài.
Ví dụ nếu bạn đang treo cập nhật hệ thống Linux mà tab bị reload thì nguy cơ lỗi hệ điều hành rất cao nên phải cẩn thận, không treo tab quá lâu nhé.
Cách #2: Kết nối SSH vào EC2 Instance bằng cửa sổ dòng lệnh Terminal
Đây có lẽ một phương pháp hết sức quen thuộc với những anh em sử dụng macOS hoặc các Distro của Linux rồi đúng không nhỉ 🙂 chỉ cần gõ lệnh ssh
vào công cụ Terminal là đã có thể kết nối được ngay mà không cần dùng bất cứ phần mềm nào.
Tin vui là bạn hoàn toàn có thể áp dụng cách đó trong cửa sổ dòng lệnh Command Prompt
(CMD) của Windows, nhưng cách đăng nhập bằng Key Pair sẽ phức tạp hơn một chút.
Thực hiện:
+ Bước 1: Bạn cũng thực hiện các bước truy cập vào trang Connect to instance
như ở trên Cách #1
bên trên, nhưng lần này ta sẽ sử dụng phương pháp kết nối sử dụng client SSH chứ không phải EC2 Instance Connect như trước nữa.
Ở đây, bạn sẽ được cung cấp các thông tin cần thiết như Key Pair
liên kết với EC2 Instance đang chọn, địa chỉ DNS Public
và câu lệnh để có thể kết nối.
+ Bước 2: Bây giờ bạn hãy mở Command Prompt
lên, sao chép nguyên dòng lệnh ở phần Example
dán vào cửa sổ CMD
rồi thay đoạn nodejs-server-1.pem
thành đường dẫn tới file Key-Pair.PEM
mà bạn đã tải về lúc tạo EC2 Instance mới.
Ví dụ như file .PEM
mình để ở thư mục Downloads
của Windows 10 thì mình sẽ sửa lệnh bên dưới => sau đó copy lệnh vào cửa sổ dòng lệnh CMD =>rồi bấm Enter
để kết nối.
ssh -i Downloadsnodejs-server-1.pem ubuntu@ec2-18-141-12-126.ap-southeast-1.compute.amazonaws.com
Ngoài ra, nếu sử dụng Linux thì bạn có thể sẽ phải phân quyền lại file bằng cách chạy lệnh chmod 400 /đường-dẫn-tới-file.PEM
thì mới kết nối bằng cách này được.
Ở lần đầu kết nối, bạn sẽ hỏi xác nhận rằng có muốn tiếp tục kết nối SSH tới VPS đã chọn không? Bạn nhập chính xác chữ YES
=> rồi Enter
để đồng ý.
Đây chính xác là những gì bạn sẽ thấy khi lần đầu kết nối SSH thành công vào một VPS EC2 chạy hệ điều hành Ubuntu 20.04 LTS.
Ưu điểm của cách này là kết nối khá đơn giản, không mất thời gian cài phần mềm và học cách sử dụng tuy nhiên để nhớ và gõ chính xác lệnh để kết nối thì cũng không dễ chút nào.
Cách #3: Kết nối SSH vào máy chủ ảo EC2 Instance bằng phần mềm Bitvise SSH (thường được sử dụng)
Trước đây mình đã từng dùng qua khá nhiều phần mềm SSH như Putty, ZOC Terminal,… nhưng Bitvise SSH mới là cái tên được mình tin tưởng sử dụng trong 2 năm trở lại đây.
Công dụng chính của Bitvise SSH vẫn là giúp người dùng có thể làm việc với VPS Linux thông qua giao thức SSH như những phần mềm khác.
Tuy nhiên nó còn hỗ trợ thêm cả giao thức quản lý tập tin FTP – cái mà mình cực kỳ cần thiết trong quá trình làm việc, giúp cho việc upload/ download file trở nên dễ hơn bao giờ hết.
Mình thấy đa số anh em làm web đều sử dụng Bitvise SSH để quản lý VPS của mình. Và mình cũng không phải ngoại lệ 😀
Thực hiện:
+ Bước 1: Chúng ta cần tải phần mềm về trước. Đây là một phần mềm hoàn toàn miễn phí, bạn có thể truy cập vào trang download của Bitvise SSH => rồi bấm vào nút Bitvise SSH Client Installer
để tải xuống client dùng cho việc kết nối SSH.
Còn về phần cài đặt thì các bạn chỉ cần
Next
liên tục là xong, mình không hướng dẫn thêm nữa. Đã làm về lĩnh vực này rồi thì những kiến thức cơ bản quá mình bỏ qua nhé 🙂
+ Bước 2: Mở phần mềm lên, giao diện chính sẽ tương tự như hình bên dưới đây.
Như mình đã có nói ở trong bài hướng dẫn tạo EC2 Instance trước đó, AWS sẽ không cho bạn mật khẩu cụ thể để có thể kết nối SSH, mà nó sẽ cấp cho một cặp Public Key và Private Key – gọi là Key Pair
và lưu dưới định dạng file .PEM
.
Giờ chúng ta cần thêm file này vào trình quản lý Public Key và Private Key của Bitvise SSH để sử dụng bằng cách chọn dòng Client key manager
.
+ Bước 3: Mặc định danh sách key đang trống vì mới cài mà, đã thêm gì đâu mà có. Giờ để thêm Key Pair vào bạn bấm vào nút Import
.
+ Bước 4: Cửa sổ File Explorer hiện lên, bạn tìm tới file Key Pair.PEM
đã tải về trước đó => rồi bấm Open
để thêm vào Bitvise SSH
.
Nhớ để loại file là All Files (*.*)
thì mới tìm được file keypair.pem
vì mặc định Bitvise không hỗ trợ loại Client Key đuôi .PEM
này.
+ Bước 5: Thêm xong, bạn đóng cửa sổ Bitvise Client Key Management
kia đi và quay về giao diện chính của Bitvise SSH.
Giờ đến phần nhập thông tin kết nối, đầu tiên bạn nhập IPv4
của VPS vào ô Host
trong phần Server
Public DNS cũng được vì địa chỉ DNS này đã được AWS thiết lập để tự phân giải ra đúng IPv4 của VPS khi bạn kết nối – những thông tin này đều có trên trang Instance details mà bạn đã truy cập ở Cách 1 và Cách 2.
Ô Port
thì mặc định Port SSH sẽ luôn là 22
, trừ khi bạn đổi.
Còn ở phần Authentication
, ô Username
bạn nhập username tương ứng với hệ điều hành đang sử dụng, mình đã có liệt kê ở phần I bên trên rồi đấy.
Tiếp đến ô Initial method
và Client Key
bạn để lần lượt là publickey
và Global 1
. Riêng Client Key
nếu bạn chỉ có 1 key duy nhất thì để Auto
cũng được. Cái này tùy bạn nha !
=> Sau khi đã nhập đủ và đúng những thông tin mình nêu trên => bạn bấm Login
để thực hiện kết nối SSH vào VPS.
+ Bước 6: Tất nhiên, dù dùng cách nào thì ở lần đầu tiên kết nối và Bitvise SSH cũng không phải ngoại lệ, bạn vẫn sẽ được hỏi về việc xác nhận kết nối và lưu Host key của VPS mới này.
Bạn bấm Accept and Save
để tiếp tục và tránh bị hỏi lại ở những lần kết nối tiếp theo nha.
+ Bước 7: Mặc định sau khi kết nối xong, sẽ không có cửa sổ Terminal hay gì khác được mở lên cả.
Bạn muốn dùng dịch vụ nào thì hãy chọn cái tương ứng, ví dụ như mình cần Terminal để gõ vài lệnh linh tinh thì chọn New Terminal Console
, còn cần giao diện quản lý file thì chọn New SFTP Window
bên dưới.
Đây cũng là 2 phần quan trọng nhất mà chúng ta thường xuyên phải thao tác.
Nhìn chung giao diện của Bitvise SSH khá trực quan, rất dễ để làm quen và sử dụng, phần được mình khoanh đỏ là nơi hiển thị trạng thái kết nối cũng như một số hoạt động khác của VPS và nó còn có cả thông báo trên màn hình nữa.
Về cơ bản thì như vậy, mình tin là chỉ mất một buổi sáng thôi là bạn đã có thể sử dụng thành thạo phần mềm Bitvise này rồi 😀
III. Lời kết
Như vậy là mình đã vừa hướng dẫn xong cho các bạn cách để kết nối SSH với máy chủ ảo EC2 Instance trên Amazon AWS rồi nha.
Nói chung đây là những cách dễ dàng nhất mà bạn có thể sử dụng để SSH vào VPS EC2 của Amazon AWS và một lần nữa, mình khuyến khích dùng phần mềm Bitvise SSH để quản lý máy chủ ảo vì nó sẽ rất có ích cho bạn sau này.
Trên đây chỉ là những cách mà mình biết và thường xuyên sử dụng, ngoài ra nếu bạn còn biết thêm cách nào hay khác nữa thì đừng quên chia sẻ lại bằng cách để lại bình luận ở bên dưới bài viết nhé. Chúc bạn thành công !
CTV: Nguyễn Thanh Tùng – Bài viết gốc tại blogchiasekienthuc.com
Có thể bạn quan tâm:
- Phần 1 – Học AWS cơ bản: Quán Net
- Toán tử instanceof trong Java
- Ngắm và bắn với thuộc tính watch trong Vue instance
Xem thêm Việc làm CNTT hấp dẫn trên TopDev