Tóm Tắt
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.
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.
- 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
- Connection type để SSH rồi nhấn Open.
- Một cửa sổ yêu cầu xác nhận xuất hiện, nhấn Yes để tiếp tục
- 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.
- 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ư PuTTY, ZOC 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.
- Tải về, cài đặt và chạy chương trình.
- Trong Connect to điền thông tin server và Port
- Connection type chọn Secure Shell
- Emulation chọn Linux
- 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
- Cuối cùng nhấn Connect để kết nối với server
- 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:
Object | Abbreviated form | Purpose |
link | l | Xem Thiết bị mạng |
address | a addr | Xem địa chỉ giao thức (IP hoặc IPv6) trên thiết bị. |
addrlabel | addrl | Xem cấu hình nhãn để lựa chọn địa chỉ giao thức |
neighbour | n neigh | ARP or NDISC cache entry. |
route | r | Routing table entry. |
rule | ru | Rule in routing policy database. |
maddress | m maddr | Multicast address. |
mroute | mr | Multicast routing cache entry. |
tunnel | t | Đường Tunnel qua IP |
xfrm | x | Framework 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é.