Tìm kiếm bài viết

SSH là gì? Hướng dẫn sử dụng SSH cho người mới tìm hiểu

07.06.2020

0/5 (0 Reviews)

SSH, hay còn được gọi là Secure Shell, là một giao thức điều khiển từ xa cho phép người dùng có thể kiểm soát và chỉnh sửa server từ xa qua mạng Internet.

    SSH là gì

    SSH, hay còn được gọi là Secure Shell, là một giao thức điều khiển từ xa cho phép người dùng có thể kiểm soát và chỉnh sửa server từ xa qua mạng Internet.

    Dịch vụ này được tạo ra nhằm thay thế cho trình Telnet vốn không có sử dụng mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo được tất cả giao tiếp được gửi tới và gửi đi từ server từ xa diễn ra trong tình trạng được mã hóa.

    ssh

    Hướng dẫn sử dụng SSH

    Để hiểu SSH là gì thì trước tiên các bạn cần phải biết nó hoạt động như thế nào. Nếu các bạn đang sử dụng Linux hoặc Mac, sử dụng SSH rất là đơn giản.

    Nếu các bạn sử dụng Windows,các bạn chỉ cần sử dụng những SSH client để mở kết nối SSH. Những trình SSH client phổ biến là Putty

    Đối với người dùng hệ điều hành MAC và Linux, hãy mở terminal và làm theo hướng dẫn sau:

    Lệnh SSH gồm có 3 phần: 

    ssh {user}@{host}

    SSH key command cho hệ thống biết là các bạn muốn mở một kết nối mà được mã hóa Secure Shell Connection. {user} đại diện cho tài khoản người dùng các bạn muốn dùng để truy cập.

    Ví dụ, bạn muốn truy cập user root, thì thay root vào.

    User root là user quản trị hệ thống với tất cả quyền để chỉnh sửa bất kỳ điều gì trên hệ thống. {host} đại diện cho máy tính các bạn muốn dùng để truy cập.

    Nó có thể là một địa chỉ IP (ví dụ 192.168.1.1) hoặc một tên miền (ví dụ, www.xydomain.com).

    Khi các bạn nhấn enter, nó sẽ hỏi các bạn nhập mật khẩu tương ứng cho tài khoản. Khi các bạn gõ, cá bạn sẽ không thấy bất kỳ dấu hiệu nào hiện trên màn hình, nhưng nếu các bạn gõ đúng mật khẩu và nhấn enter, các bạn sẽ vào được hệ thống và nhận được thông báo đăng nhập thành công.

    Hiểu về nhiều kỹ thuật mã hóa khác nhau trong SSH

    Lợi thế khiến SSH hơn hẳn các giao thức cũ là khả năng mã hóa và truyền tải dữ liệu an toàn giữa host với client.

    Host đại diện cho máy chủ từ xa mà bạn muốn kết nối tới và clientlà máy tính của bạn đang dùng để truy cập tới host. Có 3 cách khác nhau để mã hóa qua SSH là 

    • Symmetrical encryption
    • Asymmetrical encryption
    • Hashing.

    Symmetric Encryption

    Symmetric encryption là một dạng mã hóa có sử dụng secret key ở cả 2 chiều mã hóa và giải mã tin nhắn bởi cả host và client. Có nghĩa là ai đó nắm được khóa đều có thể giải mã được tin nhắn trong quá trình chuyền.

    Symmetrical encryption thường được gọi là shared keyhoặc là shared secret encryption. Vì chỉ có một khóa được sử dụng, hoặc là một cặp khóa (pair key) mà một khóa có thể được tìm ra từ khóa kia.

    Symmetric keys được sử dụng để mã hóa toàn bộ liên lạc ở trong phiên giao dịch SSH. Cả client và server sẽ tạo chung một key bí mật như là một phương thức thỏa thuận, và key đó không được tiết lộ cho một bên thứ ba.

    Quá trình tạo symmetric key được thực hiện bởi key exchange algorithm.

    Điều khiến cho thuật toán này an toàn là vì key không được truyền giữa client và host. Thay vào đó là, cả hai máy tính sẽ chia sẻ thông tin chung và sau đó sử dụng chúng để tính ra khóa bí mật.

    Kể cả bị máy khác bắt được thông tin chung, nó cũng không thể nào tính ra được key bí mật vì không biết được thuật toán tạo key.

    Asymmetric Encryption

    Không giống như symmetrical encryption, asymmetrical encryption sử dụng hai khóa khác nhau để mã hóa và giải mã. hai khóa này được gọi là public key và private key. Cả 2 tạo thành một cặp khóa là public-private key pair.

    Hashing

    Hashing một chiều là một dạng mã hóa khác có sử dụng trong Secure Shell Connections. Hash một chiều khác với cả 2 phương thức mã hóa nêu trên ở chỗ nó không được sinh ra để giải mã.

    Chúng sẽ 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ó cách nào khác để khai thác. Điều này khiến nó dường như là không thể quay ngược lại giải mã.

    Chứng thực người dùng

    Bước cuối là khi user được cấp quyền truy cập vào server để xác thực chính thông tin đang nhập đó. Để làm như vậy, hầu hết các SSH user sử dụng mật khẩu.

    Người dùng được hỏi để nhập username, tiếp theo là password. Những thông tin đăng nhập này được chuyển một cách an toàn qua một đường hầm bảo mật symmetric, vì vậy không có một cách nào chúng bị lấy cắp bởi bên thứ 3.

    Công cụ dùng để truy cập SSH.

    Trong bài viết này tôi sẽ giới thiệu đến bạn 2 công cụ cơ bản để kết nôi SSH như sau:

    PuTTY - công cụ kết nối SSh trên Window.

    PuTTY được hiểu là phần mềm sử dụng để điều khiển server thông qua mạng internet, Nó hỗ trợ nhiều giao thức mạng, bao gồm SCP, SSH, Telnet, rlogin... PuTTY ban đầu được viết dành riêng cho hệ điều hành Windows, nhưng hiện nay nó đã được viết cho nhiều hệ điều hành khác như Unix, hệ điều hành MacOS, Symbian, Windows Mobile và android. PuTTY không phải chữ viết tắt nào trong tiếng anh.

    PuTTY được sử dụng để điều khiển VPS, PuTTY được viết và được duy trì chủ yếu bởi Simon Tatham và hiện đang là phần mềm phiên bản beta.

    1. Trong ô Host Name (or IP address), bạn điền IP server vào. Port để mặc định 22 (thông tin port tùy từng server) để xem danh sách Port mặc định xem ở bài biết Bảo mật và mạng cơ bản
    2. Connection type để SSH rồi nhấn Open.
    3. Một cửa sổ yêu cầu xác nhận xuất hiện, nhấn Yes để tiếp tục
    4. Tiếp theo bạn hãy điền username và password account root. Khi nhập password sẽ không hiện ký tự nào nhé nên bạn nhập cẩn thận. Nếu sai sẽ có yêu cầu nhập lại pass.
    5. Nếu đăng nhập thành công sẽ có thông báo Welcome xuất hiện.

    PuTTY là một công cụ đơn giản để hỗ trợ bạn quản lý VPS nên không có nhiều chức năng lắm. Cá nhân mình thích sử dụng chương trình ZOC Terminal hơn, sẽ giới thiệu với các bạn trong bài viết lần sau.

    Tính năng của PuTTY 

    PuTTY hỗ trợ nhiều biến thể trên "các thiết bị đầu cuối" từ xa an toàn, và cung cấp cho người dùng trình điều khiển các SSH với khóa mã hóa, các giao thức, thuật toán mã hóa thay thế như 3DES , Arcfour, Blowfish, DES, và khóa công khai xác thực. Các lớp giao tiếp mạng hỗ trợ IPv6, và các giao thức SSH hỗ trợ các chương trình nén openssh bị trì hoãn. Nó cũng có thể được sử dụng với các kết nối cổng nối tiếp trong mạng LAN.

    PuTTY đi kèm với dòng lệnh SCP và SFTP khách hàng, được gọi là "PSCP" và "psftp" tương ứng, và Plink, một công cụ kết nối dòng lệnh, được sử dụng cho các phiên không tương tác.

    Tải PuTTY mới nhất.

    putty.exe (the SSH and Telnet client itself)

    32-bit: putty.exe

    64-bit: putty.exe

    Tải công cụ tại đây: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    ZOC Terminal

    Tương tự như PuTTYZOC Terminal cũng là một công cụ sử dụng giao thức SSH để giúp bạn kết nối vào VPS và tiến hành cài đặt, chỉnh sửa.

    Cá nhân mình thích sử dụng ZOC Terminal nhiều hơn PuTTY do chương trình này hỗ trợ nhiều chức năng, bảo mật hơn (có thể cài password khởi động) và nhất là sử dụng được Ctrl+C, Ctrl+V.

    1. Tải về, cài đặt và chạy chương trình. 
    2. Trong Connect to điền thông tin server và Port
    3. Connection type chọn Secure Shell
    4. Emulation chọn Linux
    5. Tiếp theo điền Username và Password vào, có thể chọn Save password để lần sau không phải nhập nữa
    6. Cuối cùng nhấn Connect để kết nối với server
    7. Nếu đăng nhập thành công sẽ có thông báo Welcome xuất hiện

    Tải Zoc Terminal

    ZOC for Windows: ZOC V7.25.7 (English/German) for Windows XP/2003/2008/2012/2016/Vista/Win7/Win8/Win10 (x86/x64).
    • Download zoc7257_x64.exe (5.29 MB).
    • Download zoc7257.exe (5.29 MB).

    ZOC for macOS: ZOC V7.25.7 (English/German) for macOS (10.7 Lion or higher, please contact us if you need older versions)
    • Download zoc7257.dmg (4.82MB).
    • View version history (recent changes). 

    Cách xem địa chỉ IP máy ảo, VPS của bạn.

    Sử dụng lệnh IP:

    ip OBJECT COMMAND
    ip [options] OBJECT COMMAND
    ip OBJECT help

    Trong đó Object là 1 trong bảng bên dưới đây:

    ObjectAbbreviated formPurpose
    linklXem Thiết bị mạng
    addressa
    addr
    Xem địa chỉ giao thức (IP hoặc IPv6) trên thiết bị.
    addrlabeladdrlXem cấu hình nhãn để lựa chọn địa chỉ giao thức
    neighbourn
    neigh
    ARP or NDISC cache entry.
    routerRouting table entry.
    ruleruRule in routing policy database.
    maddressm
    maddr
    Multicast address.
    mroutemrMulticast routing cache entry.
    tunneltĐường Tunnel qua IP
    xfrmxFramework for IPsec protocol.

    Ví dụ: Hiển thị thông tin về tất cả các giao diện mạng.

    ip a
    ip addr
    
    ### hiển thị duy nhất TCP/IP IPv4  ##
    ip -4 a
     
    ### hiển thị duy nhất TCP/IP IPv6  ###
    ip -6 a

    Sau khi chạy lệnh các em sẽ thấy được địa chỉ IP của mình và sử dụng chúng để kết nối SSH vào server nhé.

     
    CÓ THỂ BẠN QUAN TÂM

    Bài Viết Cùng Chuyên Mục

    XEM THÊM
    thumbnail

    Kubernetes bài 6 - Vận hành k8s Day-Two Operations và Quản trị bằng GitOps

    22.05.2026

    Khi cụm Kubernetes của bạn đã được bảo mật cấu hình, tối ưu tài nguyên và thiết lập tự phục hồi, câu hỏi đặt ra là làm sao để duy trì sự ổn định đó trong nhiều năm tiếp theo mà không bị phụ thuộc

    thumbnail

    Kubernetes bài 5 - bảo mật Cloud Native và chuẩn DevSecOps cho K8s

    22.05.2026

    Việc siết chặt an ninh (Hardening) không phải là cấu hình một vài thông số rồi bỏ đó, mà là một tư duy phòng thủ chiều sâu.

    thumbnail

    Kubernetes bài 4 - Tối ưu Resource Auto-Healing và Scale Zero-Downtime

    22.05.2026

    Bài viết này sẽ đi sâu vào các cơ chế ở tầng Kernel giúp hệ thống tự phục hồi, chống lại các đợt tấn công cạn kiệt tài nguyên và cập nhật phiên bản mới mà người dùng không hề hay biết.

    thumbnail

    Kubernetes bài 3 - Bảo mật cấu hình k8s và config Security trên Production

    22.05.2026

    Kubernetes giải quyết bài toán này bằng hai đối tượng chuyên biệt nhưng nếu không hiểu rõ bản chất bảo mật ở tầng dưới, bạn đang tự tay dâng toàn bộ chìa khóa hệ thống cho hacker.

    thumbnail

    Kubernetes bài 2 - Mạng lưới k8s và luồng Traffic ở Packet Level

    22.05.2026

    Pod không chỉ là một container: Rất nhiều người nhầm lẫn Pod 1-1 với Container. Thực chất, Pod là đơn vị triển khai nhỏ nhất, có thể chứa một hoặc nhiều container

    Mục lục bài viết