0
Blog

17 Tháng Tư, 2023

SSH là gì? Hướng dẫn cách sử dụng SSH cho người mới bắt đầu

SSH là một giao thức đóng vai trò quan trọng trong quá trình quản lý và điều chỉnh máy chủ từ xa thông qua môi trường internet để tránh cho thông tin bị ăn trộm, đánh cắp. Vậy bạn đã hiểu chính xác về định nghĩa SSH là gì cũng như cách thức hoạt động của chúng chưa, hãy tham khảo ngay bài viết dưới đây của Mona Host nhé! Thêm vào đó, chúng tôi sẽ hướng dẫn đến các bạn cách sử dụng SSH cho người mới bắt đầu.

Để có thể dễ dàng nắm được khái niệm SSH là gì, các bạn có thể tìm hiểu trước một số thuật ngữ liên quan trong các bài viết trước của chúng tôi như: 

Định nghĩa về SSH là gì?

SSH hay còn gọi là Secure Shell – một giao thức mạng cho phép người dùng có thể kết nối giữa máy chủ với máy khách một cách an toàn và bảo mật. SSH Keys cung cấp một cách an toàn hơn để đăng nhập vào máy chủ bằng SSH so với việc chỉ sử dụng mật khẩu.

Cách thức hoạt động của SSH

Sau khi đã tìm hiểu SSH là gì, chắc hẳn các bạn cũng phần nào hiểu được vai trò cũng như cách thức hoạt động cơ bản của giao thức này. Cụ thể trong phần nội dung dưới đây chúng tôi sẽ giải đáp cho các bạn một cách chi tiết về cách hoạt động cũng như sử dụng SSH như thế nào. Mời các bạn cùng theo dõi!

SSH được tạo ra để thay thế các chương trình giả lập Terminal hoặc chương trình đăng nhập không an toàn như Telnet, RSH (Remote Shell) hay Rlogin (Remote Login). Bên cạnh đó, SSH cũng hỗ trợ các chức năng tương tự như đăng nhập hay chạy các Terminal Session trên hệ thống từ xa. Ngoài ra, SSH cũng dùng để thay thế cho các chương trình truyền file như FTP (File Transfer Protocol) hay RCP (Remote Copy).

Chức năng đơn giản nhất của SSH chính là kết nối đến một Host ở xa cho một phiên Terminal bởi dòng lệnh sau: ssh server.example.org

Qua lệnh này, Client sẽ kết nối đến một Server có tên là “server.example.com” bằng user ID (User name). Nếu đây là lần kết nối đầu tiên giữa Host với Server, người dùng sẽ được thông báo về Public Key Fingerprint của Host ở xa và nhắc họ kết nối:

“Are you sure you want to continue connecting (yes or no)?”

Nếu chọn yes, phiên sẽ được tiếp tục và Host keys được lưu trữ ở trong “file known hosts” trên hệ thống cục bộ. Đây là dạng file ẩn và được lưu trữ mặc định trong một directory ẩn có tên là “/.ssh/known_hosts” nằm trong “Home directory” của người dùng. Sau đó, Client sẽ lại kết nối trực tiếp đến Server đó một lần nữa mà không cần phê duyệt và Host keys sẽ xác thực kết nối.

Các kỹ thuật mã hóa trong SSH là gì?

Kỹ thuật mã hóa trong SSH có thể triển khai theo 3 phương thức khác nhau:

Mã hóa Symmetric Encryption

Mã hóa Symmetric Encryption

Symmetric Encryption chính là một trong những phương thức mã hóa ứng dụng Secret Key theo hai chiều nhằm giúp giải mã tin ở cả trên Host và Client. Quá trình tạo Symmetric Key được thực hiện từ Key Exchange Algorithm. Do đó mà khi thực hiện kỹ thuật này, chỉ những ai có chìa khóa (mật khẩu) mới có thể giải mã được tin nhắn trong quá trình chuyển.

Tuy nhiên, Key sẽ không được truyền giữa Client và Host mà thay vào đó, cả 2 máy tính sẽ chia sẻ thông tin chung rồi sau đó sử dụng chúng để tính ra khóa bí mật. Điều này nhằm giúp thông tin được đảm bảo ngay cả khi bị máy tính khác bắt được đường truyền chung thì nội dung vẫn được an toàn do nó không tính được thuật toán tạo Key.

Mã hóa Asymmetric Encryption

Mã hóa Asymmetric Encryption

Khác với Symmetric Encryption, phương thức Asymmetric Encryption lại dùng 2 khóa riêng biệt để phục vụ cho nhu cầu mã hóa và giải mã là khóa công khai (Public Key) và khóa riêng tư (Private Key). Đúng như tên gọi, Khóa Public Key được công khai trên tất cả các thành phần liên quan còn khóa Private Key luôn được an toàn tuyệt mật, không chia sẻ với bất kỳ bên thứ ba nào.

Mỗi khi liên kết Symmetric chính thức thiết lập an toàn, máy chủ Server sẽ đồng thời sử dụng Public Key của Client. Từ đó khởi tạo và truyền đến Client nhằm phục vụ quá trình chứng thực. Trường hợp nếu Client giải mã thành công tin nhắn thì đồng nghĩa với việc nó đang giữ Private Key cần thiết.

Mã hóa Hashing

Mã hóa Hashing

Hashing được SSH sử dụng để xác nhận tính xác thực của tin nhắn bằng cách tạo ra một giá trị duy nhất với độ dài nhất định cho mỗi lần nhập liệu mà không có hướng nào khác để có thể khai thác. SSH được thực hiện bởi HMACs nhằm đảm bảo lệnh không bị giả mạo bởi bất kỳ phương thức nào.

Cách xử lý các dạng mã hóa trong giao thức SSH

Giai đoạn Session Encryption Negotiation

Để liên kết Server với Client thông qua TCP, Server cần xuất trình Encryption Protocol và phiên bản hỗ trợ tương thích với Client. Khi đó một thỏa thuận sẽ được khởi tạo để tiếp nhận Protocol và mỗi Server sẽ sử dụng Symmetric Public Key để chứng thực. Nếu đã thiết lập thành công, cả hai phía cần sử dụng thuật toán chung là Diffie-Hellman Key Exchange Algorithm để tạo ra Symmetrical Key nhằm giúp đồng bộ quá trình liên lạc sau này.

Dưới đây là phần tóm tắt hoạt động của thuật toán:

  • Server và Client đều phải đồng ý với nguyên tắc sử dụng seed value và thách thức mã hóa triển khai bởi Seed Value.
  • Cả hai bên tạo ra Private Key sẽ chung thuật toán với mã hóa AES để tạo ra Public Key.
  • Public Key sau đó sẽ phân phối đến máy còn lại.
  • Public Key của máy còn lại kết hợp cùng với Private Key để tạo ra một Key chung.
  • Khi cả hai đều có sẵn Shared Key, quá trình mã hóa Symmetric dành cho phiên SSH chính thức được khởi động.

Giai đoạn chứng thực và xác minh người dùng

Đây là bước cuối cùng để người dùng có thể truy cập vào Server và xác nhận thông tin trên chính hệ thống đăng nhập. Trước tiên, người dùng cần cung cấp tên đăng nhập rồi sau đó nhập mật khẩu. Lúc này, thông tin sẽ được truyền đến hệ thống bảo mật Symmetric để đảm bảo an toàn, không cho bất kỳ bên thứ ba nào có thể thu thập.

Mặc dù mật khẩu đã trải qua mạng mã hóa nhưng nếu người dùng không cẩn thận vẫn có thể bị lộ. Một khi bị kẻ xấu thu thập thành công mật khẩu, tài khoản của người dùng dễ bị chiếm đoạt. Để tránh điều này, các chuyên gia bảo mật khuyên bạn nên sử dụng SSH Key Pair, một bộ khóa Asymmetric cho chức năng xác thực người dùng mà không cần nhập mật khẩu.

Hướng dẫn kết nối Server sử dụng SSH cho người mới bắt đầu

Tạo SSH Keys

Đối với Linux và macOS

Khi tạo khóa SSH trong Linux, bạn có thể sử dụng dòng lệnh “ssh-keygen” được tích hợp sẵn. Để làm được như vậy, cần thực hiện theo những bước sau:

Mở Terminal và nhập vào dòng lệnh sau:

Sau đó, chọn nơi để lưu Private Key:

Lúc này, Public Key sẽ được lưu trong cùng một vị trí, dưới cùng tên tệp, nhưng có phần mở rộng .pub. Nếu các bạn không nhập gì thì chúng sẽ sử dụng thư mục mặc định:

Cuối cùng, bạn cần phải nhập mật khẩu. Đây sẽ là mật khẩu cần thiết để tải Private key và sử dụng nó cho kết nối qua SSH sau này:

Toàn bộ quá trình tạo cặp khóa sẽ diễn ra như sau:

Qúa trình tạo cặp khóa

Như vậy là bạn đã tạo được cả 2 keys:

  • Một Private key sẽ được ghi vào /home/{username}/.ssh/id_rsa.
  • Một Public key sẽ được ghi vào /home/{username}/.ssh/id_rsa.pub

Trong đó {username} là tên đăng nhập của máy tính của bạn.

Đối với Windows

Để tạo SSH key, các bạn có thể sử dụng phần mềm PuTTY vì nó có thể kết nối bằng SSH tới Server.

Với PuTTY, các bước được thực hiện như sau:

  • Download và khởi động puttygen.exe.
  • Trong phần “Parameters”, bạn chọn SSH2 DSA và nhấn Generate.
  • Di chuyển chuột của bạn trong màn hình nhỏ để tạo thành các khóa.
  • Nhập comment
  • Nhập mật khẩu và xác nhận. Trong đó, cụm mật khẩu được sử dụng để bảo vệ khóa của bạn.
  • Bạn sẽ được yêu cầu khi kết nối qua SSH.
  • Nhấp vào “Save Private Key” để lưu lại Private Key
  • Tiếp theo, nhấp vào “Save Public Key” để lưu Public Key của bạn.
Tạo cặp khóa với PuTTY

Vậy là đã tạo xong cả 2 loại Key, và việc tiếp theo mà bạn cần làm là thêm Public Key lên Server.

Thêm Public Key vào Server

Cài đặt SSH trên Server

Linux sẽ không có SSH mặc định, do đó bạn cần tải và cài đặt SSH thì mới có thể sử dụng được. Nếu bạn tự thuê riêng một Server và phải tự cài đặt hệ điều hành từ đầu thì bạn cũng cần phải cài thêm SSH. Còn với trường hợp VPS thì các nhà cung cấp thường sẽ cài đặt sẵn SSH cho bạn luôn.

  • Đối với RHEL/CentOS
  • Đối với Ubuntu/Debian

Mona Host là công ty chuyên cung cấp Hosting và cho thuê máy chủ Server hàng đầu tại Việt Nam với hơn 10 năm kinh nghiệm. Nếu có bất cứ nhu cầu nào về máy chủ, hãy liên hệ ngay với chúng tôi qua hotline 1900 636 648 để được tư vấn miễn phí nhé!

Thêm Public key vào máy chủ

Để thêm SSH Public Key của bạn vào máy chủ, cần sao chép SSH Public key mà bạn vừa tạo vào máy chủ.

Sau đó, máy chủ sẽ nhắc bạn nhập mật khẩu:

Bây giờ bạn sẽ được thiết lập kết nối đến máy chủ trực tiếp mà không cần phải thêm bước xác thực mật khẩu.

Đăng nhập vào Server sử dụng SSH Key

Để kết nối đến một Server sử dụng giao thức SSH, bạn có thể thực hiện trên Window, Linux hay MacOS. Trên Linux, Terminal sẽ hỗ trợ sẵn các tính năng kết nối SSH nên bạn có thể sử dụng luôn. Còn đối với Window, bạn cần phải cài thêm một phần mềm bên thứ 3, ví dụ như PuTTY, ZOC7…

Những thông tin dùng để đăng nhập một máy chủ qua SSH sẽ bao gồm:

  • IP của Server. Ví dụ: 104.31.76.95
  • Tên đăng nhập, đa phần là root
  • Mật khẩu đăng nhập
  • Cổng kết nối: 22. Mặc định SSH sử dụng cổng 22

*** Lưu ý: Kết nối SSH bằng phần mềm nào thì sử dụng chính phần mềm đó để tạo Key nhằm trành những lỗi không đáng có.

Ví dụ nếu sử dụng phần mềm ZOC7, các bạn chỉ cần điền thông tin cần thiết khi khởi động ứng dụng như sau:

Đăng nhập Server bằng ZOC7

Vậy là xong rồi, từ nay về sau thì việc kết nối tới Server sẽ đơn giản hơn rất nhiều.

Hy vọng bài viết trên đây sẽ mang đến cho bạn nhiều thông tin hữu ích về giao thức mạng SSH, giúp bạn nắm rõ được SSH là gì cũng như có thể ứng dụng hiệu quả trong việc điều khiển và quản lý hệ thống Server của doanh nghiệp mình.

>> Bạn có thể tham khảo thêm các bài viết liên quan sau: SSL là gì? Những điều cần biết về chứng chỉ số SSL

Bài viết liên quan

Dịch vụ thiết kế
website chuyên nghiệp

Sở hữu website với giao diện đẹp, độc quyền 100%, bảo hành trọn đời với khả năng
mở rộng tính năng linh hoạt theo sự phát triển doanh nghiệp ngay hôm nay!

Liên hệ Mona
Giỏ hàng của bạn

Giỏ hàng trống!