Đường hầm SSH ngược là gì? (và cách sử dụng nó)

Tác giả sysadmin, T.Chín 24, 2023, 03:03:48 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Đường hầm SSH ngược là gì? (và cách sử dụng nó)


Đối với những hệ thống Linux không thể truy cập được.

  • Sử dụng đường hầm SSH ngược khi bạn cần kết nối với một máy tính từ xa khó tiếp cận do quy tắc tường lửa hoặc cấu hình mạng phức tạp.
  • Đường hầm SSH ngược cho phép bạn thiết lập kết nối mới từ máy tính cục bộ của bạn trở lại máy tính từ xa bằng kết nối hiện có.
  • Thiết lập khóa SSH để kết nối từ máy tính từ xa đến máy tính cục bộ thuận tiện hơn mà không bị thách thức nhập mật khẩu.


Cần SSH tới một máy tính Linux không thể truy cập được? Yêu cầu nó gọi cho bạn, sau đó tìm kiếm kết nối đó để nhận phiên SSH từ xa của riêng bạn. Chúng tôi chỉ cho bạn cách.

1. Khi nào bạn muốn sử dụng Đường hầm SSH ngược

Đôi khi, khó có thể tiếp cận được các máy tính từ xa. Trang web họ đang truy cập có thể có các quy tắc tường lửa chặt chẽ hoặc có thể quản trị viên cục bộ đã thiết lập các quy tắc Dịch địa chỉ mạng phức tạp. Làm thế nào để bạn tiếp cận một máy tính như vậy nếu bạn cần kết nối với nó?

Hãy thiết lập một số nhãn. Máy tính của bạn là máy tính cục bộ vì nó ở gần bạn. Máy tính bạn sắp kết nối là máy tính từ xa vì nó ở một vị trí khác với bạn.

Để phân biệt giữa máy tính cục bộ và máy tính từ xa được sử dụng trong bài viết này, máy tính từ xa đang chạy Ubuntu Linux (với các cửa sổ đầu cuối màu tím). Máy tính cục bộ có tên là "Sulaco" và đang chạy Manjaro Linux (với các cửa sổ đầu cuối màu vàng).

Thông thường, bạn sẽ kích hoạt kết nối SSH từ máy tính cục bộ và kết nối với máy tính từ xa. Đó không phải là một lựa chọn trong kịch bản kết nối mạng mà chúng tôi đang mô tả. Vấn đề mạng cụ thể là gì thực sự không quan trọng - điều này hữu ích bất cứ khi nào bạn không thể SSH thẳng tới máy tính từ xa.

Nhưng nếu cấu hình mạng ở phía bạn đơn giản thì máy tính từ xa có thể kết nối với bạn. Tuy nhiên, chỉ điều đó thôi là không đủ cho nhu cầu của bạn vì nó không cung cấp cho bạn phiên dòng lệnh hoạt động trên máy tính từ xa. Nhưng đó là một sự khởi đầu. Bạn có một kết nối được thiết lập giữa hai máy tính.

Câu trả lời nằm ở đường hầm SSH ngược.

2. Đường hầm SSH ngược là gì?

Đường hầm SSH ngược cho phép bạn sử dụng kết nối đã thiết lập đó để thiết lập kết nối mới từ máy tính cục bộ của bạn trở lại máy tính từ xa.

Vì kết nối ban đầu đến từ máy tính từ xa tới bạn nên việc sử dụng nó để đi theo hướng khác là sử dụng nó "ngược lại". Và vì SSH là an toàn nên bạn đang đặt một kết nối an toàn bên trong một kết nối an toàn hiện có. Điều này có nghĩa là kết nối của bạn với máy tính từ xa hoạt động như một đường hầm riêng bên trong kết nối ban đầu.

Và vì vậy chúng ta có được cái tên "đảo ngược đường hầm SSH".

3. Đường hầm ngược SSH hoạt động như thế nào?

Đường hầm SSH ngược dựa vào máy tính từ xa sử dụng kết nối đã thiết lập để lắng nghe các yêu cầu kết nối mới từ máy tính cục bộ.

Máy tính từ xa lắng nghe trên một cổng mạng trên máy tính cục bộ. Nếu nó phát hiện một yêu cầu SSH tới cổng đó, nó sẽ chuyển tiếp yêu cầu kết nối đó trở lại chính nó, hủy kết nối đã thiết lập. Điều này cung cấp một kết nối mới từ máy tính cục bộ đến máy tính từ xa.

Nó dễ thiết lập hơn là mô tả.

4. Sử dụng đường hầm ngược SSH

SSH sẽ được cài đặt trên máy tính Linux của bạn, nhưng bạn có thể cần khởi động daemon SSH (sshd) nếu máy tính cục bộ chưa bao giờ chấp nhận kết nối SSH trước đó.

Mã nguồn [Chọn]
sudo systemctl start sshd
Để khởi động daemon SSH mỗi khi bạn khởi động lại máy tính, hãy sử dụng lệnh này:

Mã nguồn [Chọn]
sudo systemctl enable sshd

Trên máy tính từ xa, chúng tôi sử dụng lệnh sau.

  • Tùy -Rchọn (đảo ngược) cho biết sshphiên SSH mới phải được tạo trên máy tính từ xa.
  • "43022:localhost:22" cho biết sshrằng các yêu cầu kết nối tới cổng 43022 trên máy tính cục bộ phải được chuyển tiếp tới cổng 22 trên máy tính từ xa. Cổng 43022 được chọn vì nó được liệt kê là chưa được phân bổ. Đó không phải là một con số đặc biệt.
  • [email protected] là tài khoản người dùng mà máy tính từ xa sẽ kết nối trên máy tính cục bộ.

Mã nguồn [Chọn]
ssh -R 43022:localhost:22 [email protected]
Bạn có thể nhận được cảnh báo về việc chưa từng kết nối với máy tính cục bộ trước đây. Hoặc bạn có thể thấy cảnh báo khi chi tiết kết nối được thêm vào danh sách máy chủ SSH được công nhận. Những gì bạn nhìn thấy - nếu có - phụ thuộc vào việc liệu các kết nối đã từng được thực hiện từ máy tính từ xa đến máy tính cục bộ hay chưa.

Bạn sẽ được nhắc nhập mật khẩu của tài khoản bạn đang sử dụng để kết nối với máy tính cục bộ.


Lưu ý rằng khi kết nối được thực hiện, dấu nhắc lệnh sẽ thay đổi từ dave@ thành dave@sulaco.

Bây giờ chúng tôi đã kết nối với máy tính cục bộ từ máy tính từ xa. Điều đó có nghĩa là chúng ta có thể ra lệnh cho nó. Hãy sử dụng wholệnh để xem thông tin đăng nhập trên máy tính cục bộ.

Mã nguồn [Chọn]
who

Chúng ta có thể thấy rằng người có tài khoản người dùng có tên là dave đã đăng nhập vào máy tính cục bộ và máy tính từ xa đã kết nối (sử dụng cùng thông tin đăng nhập của người dùng) từ địa chỉ IP 192.168.4.25.

5. Kết nối với máy tính từ xa

Vì kết nối từ máy tính từ xa thành công và nó đang lắng nghe các kết nối nên chúng ta có thể thử kết nối với máy tính từ xa từ máy tính cục bộ.

Máy tính từ xa đang nghe trên cổng 43022 trên máy tính cục bộ. Vì vậy - hơi phản trực giác - để tạo kết nối với máy tính từ xa, chúng tôi yêu cầu sshtạo kết nối với máy tính cục bộ, trên cổng 43022. Yêu cầu kết nối đó sẽ được chuyển tiếp đến máy tính từ xa.

Mã nguồn [Chọn]
ssh localhost -p 43022
Chúng tôi được nhắc nhập mật khẩu tài khoản người dùng, sau đó được kết nối với máy tính từ xa từ máy tính cục bộ. Máy tính Manjaro của chúng tôi vui vẻ nói: "Chào mừng đến với Ubuntu 18.04.2 LTS".


Lưu ý rằng dấu nhắc lệnh đã thay đổi từ dave@sulaco thành dave@. Chúng tôi đã đạt được mục tiêu là tạo kết nối SSH tới máy tính từ xa khó tiếp cận của mình.

6. Sử dụng SSH bằng khóa

Để thuận tiện hơn cho việc kết nối từ máy tính từ xa đến máy tính cục bộ, chúng ta có thể thiết lập khóa SSH.

Trên máy tính từ xa, gõ lệnh này:

Mã nguồn [Chọn]
ssh-keygen
Bạn sẽ được nhắc nhập cụm mật khẩu. Bạn có thể nhấn Enter để bỏ qua các câu hỏi về cụm mật khẩu, nhưng điều này không được khuyến khích. Điều đó có nghĩa là bất kỳ ai trên máy tính từ xa đều có thể tạo kết nối SSH với máy tính cục bộ của bạn mà không bị thách thức nhập mật khẩu.

Ba hoặc bốn từ được phân tách bằng các ký hiệu sẽ tạo thành cụm mật khẩu mạnh mẽ.


Khóa SSH của bạn sẽ được tạo.

Chúng ta cần chuyển khóa chung sang máy tính cục bộ. Sử dụng lệnh này:

Mã nguồn [Chọn]
ssh-copy-id [email protected]
Bạn sẽ được nhắc nhập mật khẩu cho tài khoản người dùng mà bạn đang đăng nhập, trong trường hợp này là [email protected].


Lần đầu tiên bạn thực hiện yêu cầu kết nối từ máy tính từ xa đến máy tính cục bộ, bạn sẽ phải cung cấp cụm mật khẩu. Bạn sẽ không phải nhập lại mã này cho các yêu cầu kết nối trong tương lai, miễn là cửa sổ đầu cuối đó vẫn mở.


7. Không phải tất cả các đường hầm đều đáng sợ

Một số đường hầm có thể tối và ngoằn ngoèo, nhưng việc điều hướng đường hầm SSH ngược không quá khó nếu bạn có thể ghi nhớ mối quan hệ giữa máy tính từ xa và máy tính cục bộ trong đầu. Sau đó đảo ngược nó. Để làm cho mọi việc dễ dàng hơn, bạn luôn có thể thiết lập tệp cấu hình SSH cho phép bạn hợp lý hóa những thứ như tạo đường hầm hoặc chuyển tiếp tác nhân ssh.