SSH là gì? Tổng hợp A-Z về SSH cho người bắt đầu

15/03/2022

SHH chính là giao thức được phát triển để thay thế các giao thức cũ không an toàn. Tăng tính bảo mật và quyền riêng tư trên tất cả các hệ điều hành. Vì vậy hoàn toàn phù hợp cho các cá nhân, tổ chức, doanh nghiệp.

1. SSH là gì?

SSH còn được gọi là Secure Shell hoặc Secure Socket Shell là một giao thức mạng. Cung cấp phương thức bảo mật để hai máy tính có thể kết nối từ xa. Sử dụng mã hóa đảm bảo tin tặc không thể diễn giải lưu lượng giữa hai thiết bị được kết nối.

giao-thuc-ssh

SSH bao gồm ba lớp riêng biệt:

  • Lớp truyền tải thiết lập: Giao tiếp an toàn, bảo mật giữa máy khách, máy chủ trong và sau khi xác thực. Nó giám sát việc mã hóa, giải mã và bảo vệ tính toàn vẹn của dữ liệu. Giúp tăng tốc độ trao đổi dữ liệu bằng cách cung cấp tính năng nén, lưu trữ dữ liệu.
  • Lớp xác thực: Truyền tải các phương pháp xác thực được hỗ trợ cho máy khách. Nó cũng tiến hành toàn bộ quá trình xác thực người dùng.
  • Lớp kết nối: Quản lý giao tiếp giữa các máy sau khi xác thực thành công. Xử lý việc mở – đóng các kênh liên lạc và cho phép nhiều kênh cho nhiều phiên.

2. SSH được sử dụng để làm gì?

Nó cung cấp một lớp bảo mật cho việc truyền thông tin giữa các máy. Một số trường hợp sử dụng quan trọng cho SSH là:

  • Truy cập từ xa: Đảm bảo kết nối từ xa được mã hóa cho người dùng và quy trình.
  • Truyền tệp: SFTP một giao thức truyền tệp an toàn do SSH quản lý. Cung cấp một cách an toàn để thao tác tệp qua mạng.
  • Chuyển tiếp X11: Người dùng có thể chạy các ứng dụng X được lưu trữ trên máy chủ từ các máy khách của họ.
  • Chuyển tiếp cổng: Bằng cách ánh xạ cổng của khách hàng với các cổng từ xa của máy chủ. SSH giúp bảo mật các giao thức mạng khác chẳng hạn như TCP/IP.
  • Đường hầm: Kỹ thuật đóng gói này cung cấp truyền dữ liệu an toàn. Đường hầm rất hữu ích để truy cập các tài liệu trực tuyến nhạy cảm. Nhất là đối với những doanh nghiệp từ các mạng không an toàn. Bởi vì nó có thể hoạt động như một giải pháp thay thế VPN tiện dụng.
  • Quản lý mạng: Giao thức SSH quản lý cơ sở hạ tầng mạng và các phần khác của hệ thống.

3. SSH hoạt động như thế nào?

Đây là một giao thức dựa trên máy khách – máy chủ. Điều này có nghĩa là giao thức cho phép một thiết bị yêu cầu thông tin hoặc dịch vụ (máy khách) kết nối với một thiết bị khác (máy chủ).

Khi máy khách kết nối với máy chủ qua Secure Shell, máy có thể được điều khiển như một máy tính cục bộ. Máy chủ có một cổng TCP được chỉ định. Qua đó nó giám sát mạng, chờ máy khách khởi tạo kết nối. Trước khi một máy khách kết nối và bắt đầu phát lệnh SSH. Nó cần phải vượt qua quá trình xác thực.

3.1. Thiết lập kết nối SSH

Chạy lệnh sau trên máy khách để bắt đầu kết nối SSH:

ssh UserName@SSHserver.example.com

Lệnh này sẽ khiến máy khách cố gắng kết nối với máy chủ có tên server.example.com. Sử dụng UserName ID người dùng. Nếu là lần đầu tiên thương lượng kết nối giữa máy chủ cục bộ và máy chủ. Người dùng sẽ được nhắc với dấu vân tay khóa công khai của máy chủ từ xa. Đồng thời được nhắc kết nối, mặc dù chưa có kết nối trước:

The authenticity of host ‘sample.ssh.com’ cannot be established.
DSA key fingerprint is 01:23:45:67:89:ab:cd:ef:ff:fe:dc:ba:98:76:54:32:10.
Are you sure you want to continue connecting (yes/no)?

Trả lời có với lời nhắc sẽ khiến phiên tiếp tục và khóa máy chủ được lưu trữ trong tệp known_hosts của hệ thống cục bộ. Đây là một tệp ẩn, được lưu trữ theo mặc định trong một thư mục ẩn. Được gọi là /.ssh/known_hosts, trong thư mục chính của người dùng. Khi khóa máy chủ đã được lưu trữ trong tệp known_hosts, hệ thống máy khách có thể kết nối lại trực tiếp với máy chủ đó mà không cần bất kỳ phê duyệt nào, phím máy chủ xác thực kết nối.

3.2. Triển khai SSH

SSH là một giao thức mở nó đã được thực hiện cho hầu hết các nền tảng máy tính. Việc triển khai OpenSSH mã nguồn mở là cách phổ biến nhất được tìm thấy trên Linux, Unix và các hệ điều hành khác. Dựa trên Berkeley Software Distribution (BSD), bao gồm cả macOS của Apple.

OpenSSH đã được chuyển sang chạy trong Windows PowerShell bắt đầu từ năm 2015. Vào năm 2018, hỗ trợ OpenSSH tùy chọn đã được thêm vào Windows 10. Mặc dù SSH có thể truy cập trực tiếp theo mặc định trong hầu hết các hệ điều hành giống Unix. Phiên bản OpenSSH đã chuyển của Microsoft phải được bật rõ ràng trong Windows Ứng dụng cài đặt.

PuTTY là một triển khai mã nguồn mở khác của Secure Shell. Mặc dù nó hiện có sẵn cho Windows, MacOS và Unix / BSD. PuTTY ban đầu được viết dùng để chạy trên Windows.Từ lâu nó đã là một trong những lựa chọn hàng đầu để sử dụng SSH trên hệ thống Windows.

Hầu hết các triển khai của bộ Secure Shell bao gồm ba tiện ích:

  1. slogin (đăng nhập an toàn)
  2. ssh
  3. scp (bản sao an toàn)

Đây là các phiên bản an toàn của các tiện ích Unix không an toàn trước đó: Rlogin, rsh và rcp.

SSH sử dụng mật mã khóa công khai để xác thực máy tính từ xa. Cho phép máy tính từ xa xác thực người dùng nếu cần. Hiện tại có hàng chục triển khai SSH, có sẵn cho các nền tảng khác nhau. Chúng theo nhiều loại giấy phép nguồn mở và độc quyền.

3.3. Lệnh SSH

Trong khi có các triển khai đồ họa của Secure Shell, chương trình thường được gọi tại dòng lệnh hoặc được thực thi như một phần của tập lệnh. Tự chạy lệnh, không có đối số như máy chủ đích hoặc ID người dùng. Trả về danh sách các tham số và tùy chọn lệnh SSH.

Dạng cơ bản nhất của lệnh SSH là gọi chương trình và tên máy chủ đích hoặc địa chỉ Giao thức Internet (IP):

ssh server.example.org

Thao tác này sẽ kết nối với đích server.example.org. Máy chủ đích sẽ phản hồi bằng cách nhắc nhập mật khẩu cho ID người dùng của tài khoản mà máy khách đang chạy. Nói cách khác, nếu ID người dùng đang sử dụng là jsmith, thì máy chủ từ xa sẽ yêu cầu mật khẩu được liên kết với tài khoản jsmith trên máy chủ từ xa.

Trong nhiều trường hợp, ID người dùng cho máy chủ từ xa sẽ khác. Trong trường hợp đó, lệnh phải được cấp bằng ID người dùng máy chủ từ xa, như sau:

ssh remote_host_userID@server.example.org

SSH cũng có thể được sử dụng từ dòng lệnh để đưa ra một lệnh duy nhất trên máy chủ từ xa và sau đó thoát, ví dụ:

ssh example.org ls

Lệnh này thực hiện lệnh Unix ls, liệt kê tất cả nội dung của thư mục hiện tại trên máy chủ từ xa. Chứng tỏ rằng Secure Shell có thể được sử dụng để thực thi các lệnh thú vị hơn trên một máy chủ từ xa. Ví dụ, một lệnh có thể được tạo thủ công để khởi tạo một phiên bản máy chủ. Sẽ cấp cho máy từ xa quyền truy cập vào một tệp duy nhất. Hoặc tài nguyên khác và sau đó chấm dứt máy chủ sau khi tệp được truy cập bởi máy chủ từ xa.

Ngoài tệp thực thi ssh, SSH có các lệnh thực thi khác được sử dụng tại dòng lệnh cho các chức năng bổ sung, bao gồm các lệnh sau:

  • sshd: Khởi tạo máy chủ SSH, máy chủ này sẽ đợi các yêu cầu kết nối SSH đến. Cho phép các hệ thống được ủy quyền kết nối với máy chủ cục bộ.
  • ssh-keygen: Là chương trình tạo cặp khóa xác thực mới cho SSH. Có thể được sử dụng để tự động hóa đăng nhập, triển khai SSO và xác thực máy chủ.
  • ssh-copy-id: Là chương trình dùng để sao chép, cài đặt và định cấu hình khóa SSH trên máy chủ. Tự động hóa đăng nhập và SSO không cần mật khẩu.
  • ssh-agent: Là một chương trình trợ giúp theo dõi các khóa nhận dạng và cụm mật khẩu của chúng. Từ đó SSH lấy khóa mã hóa và cho phép người dùng sử dụng khóa nhận dạng để đăng nhập vào các máy chủ khác nhau. Không cần nhập lại mật khẩu hoặc cụm mật khẩu nên thuận tiện cho bạn khi sử dụng.
  • ssh-add: Được sử dụng để thêm khóa vào tác nhân xác thực. Được sử dụng với ssh-agent để triển khai SSO bằng SSH.
  • scp: Là chương trình được sử dụng để sao chép tệp từ máy này sang máy khác. Là phiên bản rcp được bảo mật bằng Secure Shell.
  • sftp: Là chương trình dùng để sao chép tệp từ máy tính này sang máy tính khác. Đây là phiên bản ftp được bảo mật bằng SSH, giao thức truyền tệp gốc. SFTP đã trở thành cơ chế ưa thích để chia sẻ tệp qua internet. Thay thế cho cả FTP và FTP / S (FTP Secure). Đây là một giao thức sử dụng FTP qua đường hầm SSL / TLS.

Trên đây là những thông tin về SSH mà chúng tôi tổng hợp lại. Hy vọng với những kiến thức này sẽ đem lại cho bạn một cái nhìn mới mẻ hơn về SSH.