SSH là một giao thức mạng dùng để thiết lập kết nối mạng một cách bảo mật an toàn giúp mã hóa những thông tin quan trọng trên trường truyền giữa server và client. Tên trong tiếng anh là Secure Shell. Hiểu một cách đơn giản nó là chương trình giúp bạn mã hóa thông tin khi truy cập vào VPS/Server của bạn để không bị lấy cắp thông tin và hack server. SSH hoạt động ở lớp trên trong mô hình phân lớp TCP/IP. Các công cụ SSH cung cấp cho người dùng cách thức để thiết lập kết nối mạng được mã hóa để tạo một kênh kết nối riêng tư. Hơn nữa tính năng tunneling của các công cụ này cho phép chuyển tải các giao vận theo các giao thức khác. Do vậy có thể thấy khi xây dựng một hệ thống mạng dựa trên SSH, chúng ta sẽ có một hệ thống mạng riêng ảo VPN đơn giản.
Do đó, để tránh bị lấy cắp thôg tin khi kết nối tới Server, VPS của bạn thì chúng ta sẽ sử dụng những phần mềm kết nối tới VPS/Server sử dụng giao thức SSH. Các chương trình trước đây: Telnet, rlogin không sử dụng phương pháp mã hóa cho nên bất kỳ ai cũng có thể nghe trộm thậm chí đọc được toàn bộ nội dung của phiên làm việc bằng cách sử dụng một số công cụ đơn giản. Sử dụng SSH là biện pháp hữu hiệu bảo mật dữ liệu trên đường truyền từ hệ thống này đến hệ thống khác.
Mỗi khi dữ liệu được gửi bởi một máy tính vào mạng, SSH tự động mã hóa nó. Khi dữ liệu được nhận vào, SSH tự động giải mã nó. Kết quả là việc mã hóa được thực hiện trong suốt: Người dùng có thể làm việc bình thường, không biết rằng việc truyền thông của họ đã được mã hóa an toàn trên mạng.
Cách thức làm việc của SSH
SSH làm việc thông qua 3 bước đơn giản:
Một SSH thường có dạng như sau:
Ví dụ: 192.168.123.255
Admin
Admin hoặc abc.com
Root
Root
Định danh host
Việc định danh host được thực hiện qua việc trao đổi khóa. Mỗi máy tính có hỗ trợ kiểu truyền thông SSH có một khóa định danh duy nhất. Khóa này gồm hai thành phần: Khóa riêng và khóa công cộng. Khóa công cộng được sử dụng khi cần trao đổi giữa các máy chủ với nhau trong phiên làm việc SSH, dữ liệu sẽ được mã hóa bằng khóa công khai và chỉ có thể giải mã bằng khóa riêng. Khi có sự thay đổi về cấu hình trên máy chủ: Thay đổi chương trình SSH, thay đổi cơ bản trong hệ điều hành, khóa định danh cũng sẽ thay đổi. Khi đó mọi người sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này. Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khóa công cộng của nó cho máy khách. Máy khách sinh ra một khóa phiên ngẫu nhiên và mã hóa khóa này bằng khóa công cộng của máy chủ, sau đó gửi lại cho máy chủ. Máy chủ sẽ giải mã khóa phiên này bằng khóa riêng của mình và nhận được khóa phiên. Khóa phiên này sẽ là khóa sử dụng để trao đổi dữ liệu giữa hai máy. Quá trình này được xem như các bước nhận diện máy chủ và máy khách.
Mã hóa
Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khóa, định danh), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mã hóa/giải mã. Điều đó có nghĩa là dữ liệu gửi/nhận trên đường truyền đều được mã hóa và giải mã theo cơ chế đã thỏa thuận trước giữa máy chủ và máy khách. Việc lựa chọn cơ chế mã hóa thường do máy khách quyết định. Các cơ chế mã hóa thường được chọn bao gồm: 3DES, IDEA, và Blowfish. Khi cơ chế mã hóa được lựa chọn, máy chủ và máy khách trao đổi khóa mã hóa cho nhau. Việc trao đổi này cũng được bảo mật dựa trên đinh danh bí mật của các máy. Kẻ tấn công khó có thể nghe trộm thông tin trao đổi trên đường truyền vì không biết được khóa mã hóa. Các thuật toán mã hóa khác nhau và các ưu, nhược điểm của từng loại:
Chứng thực
Việc chứng thực là bước cuối cùng trong ba bước, và là bước đa dạng nhất. Tại thời điểm này, kênh trao đổi bản thân nó đã được bảo mật. Mỗi định danh và truy nhập của người sử dụng có thể được cung cấp theo rất nhiều cách khác nhau. Chẳng hạn, kiểu chứng thực rhosts có thể được sử dụng, nhưng không phải là mặc định; nó đơn giản chỉ kiểm tra định danh của máy khách được liệt kê trong file rhost (theo DNS và địa chỉ IP). Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác: Chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khóa.
Hướng dẫn sử dụng SSH:
Do đó, để tránh bị lấy cắp thôg tin khi kết nối tới Server, VPS của bạn thì chúng ta sẽ sử dụng những phần mềm kết nối tới VPS/Server sử dụng giao thức SSH. Các chương trình trước đây: Telnet, rlogin không sử dụng phương pháp mã hóa cho nên bất kỳ ai cũng có thể nghe trộm thậm chí đọc được toàn bộ nội dung của phiên làm việc bằng cách sử dụng một số công cụ đơn giản. Sử dụng SSH là biện pháp hữu hiệu bảo mật dữ liệu trên đường truyền từ hệ thống này đến hệ thống khác.
Mỗi khi dữ liệu được gửi bởi một máy tính vào mạng, SSH tự động mã hóa nó. Khi dữ liệu được nhận vào, SSH tự động giải mã nó. Kết quả là việc mã hóa được thực hiện trong suốt: Người dùng có thể làm việc bình thường, không biết rằng việc truyền thông của họ đã được mã hóa an toàn trên mạng.
Cách thức làm việc của SSH
SSH làm việc thông qua 3 bước đơn giản:
- Định danh host - xác định định danh của hệ thống tham gia phiên làm việc SSH.
- Mã hóa - thiết lập kênh làm việc mã hóa.
- Chứng thực - xác thực người sử dụng có quyền đăng nhập hệ thống.
Một SSH thường có dạng như sau:
- IP / Host
User
Pass.
Ví dụ: 192.168.123.255
Admin
Admin hoặc abc.com
Root
Root
Định danh host
Việc định danh host được thực hiện qua việc trao đổi khóa. Mỗi máy tính có hỗ trợ kiểu truyền thông SSH có một khóa định danh duy nhất. Khóa này gồm hai thành phần: Khóa riêng và khóa công cộng. Khóa công cộng được sử dụng khi cần trao đổi giữa các máy chủ với nhau trong phiên làm việc SSH, dữ liệu sẽ được mã hóa bằng khóa công khai và chỉ có thể giải mã bằng khóa riêng. Khi có sự thay đổi về cấu hình trên máy chủ: Thay đổi chương trình SSH, thay đổi cơ bản trong hệ điều hành, khóa định danh cũng sẽ thay đổi. Khi đó mọi người sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này. Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khóa công cộng của nó cho máy khách. Máy khách sinh ra một khóa phiên ngẫu nhiên và mã hóa khóa này bằng khóa công cộng của máy chủ, sau đó gửi lại cho máy chủ. Máy chủ sẽ giải mã khóa phiên này bằng khóa riêng của mình và nhận được khóa phiên. Khóa phiên này sẽ là khóa sử dụng để trao đổi dữ liệu giữa hai máy. Quá trình này được xem như các bước nhận diện máy chủ và máy khách.
Mã hóa
Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khóa, định danh), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mã hóa/giải mã. Điều đó có nghĩa là dữ liệu gửi/nhận trên đường truyền đều được mã hóa và giải mã theo cơ chế đã thỏa thuận trước giữa máy chủ và máy khách. Việc lựa chọn cơ chế mã hóa thường do máy khách quyết định. Các cơ chế mã hóa thường được chọn bao gồm: 3DES, IDEA, và Blowfish. Khi cơ chế mã hóa được lựa chọn, máy chủ và máy khách trao đổi khóa mã hóa cho nhau. Việc trao đổi này cũng được bảo mật dựa trên đinh danh bí mật của các máy. Kẻ tấn công khó có thể nghe trộm thông tin trao đổi trên đường truyền vì không biết được khóa mã hóa. Các thuật toán mã hóa khác nhau và các ưu, nhược điểm của từng loại:
- 3DES hay còn được biết như Triple-DES - phương pháp mã hóa mặc định cho SSH.
- IDEA - Nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish.
- Arcfour - Nhanh, nhưng các vấn đề bảo mật đã được phát hiện.
- Blowfish - Nhanh và bảo mật, nhưng các phương pháp mã hóa đang được cải tiến.
Chứng thực
Việc chứng thực là bước cuối cùng trong ba bước, và là bước đa dạng nhất. Tại thời điểm này, kênh trao đổi bản thân nó đã được bảo mật. Mỗi định danh và truy nhập của người sử dụng có thể được cung cấp theo rất nhiều cách khác nhau. Chẳng hạn, kiểu chứng thực rhosts có thể được sử dụng, nhưng không phải là mặc định; nó đơn giản chỉ kiểm tra định danh của máy khách được liệt kê trong file rhost (theo DNS và địa chỉ IP). Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác: Chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khóa.
Hướng dẫn sử dụng SSH:
Last edited by a moderator:






