反向 SSH 隧道

Nilesh Katuwal 2023年1月30日
  1. 反向 SSH 隧道的工作機制
  2. 使用 SSH 的反向隧道
  3. 反向構建一個 SSH 隧道
反向 SSH 隧道

你可以利用該已建立的連線通過從本地計算機到遠端計算機的反向 SSH 隧道建立新連線。

因為連線是從遠端計算機到你建立的,所以以其他方式使用它被稱為反向

由於 SSH 是安全的,你還在現有的安全連線中建立了安全連線。這意味著你的遠端計算機連線充當原始連線中的專用隧道。

反向 SSH 隧道的工作機制

遠端計算機使用已建立的連線在反向 SSH 隧道中偵聽來自本地計算機的其他連線請求。

在本地計算機上,遠端計算機偵聽網路埠。如果檢測到對該埠的 SSH 請求,它將通過 http 連線將連線請求傳送回自身。

它在本地和遠端計算機之間建立新的連線。

使用 SSH 的反向隧道

你需要在使用前安裝 OpenSSH 伺服器,但你還沒有這樣做。安裝 OpenSSH 伺服器以解決問題。

$ sudo apt install openssh-server

如果本地機器以前從未接受過 SSH 連線,你可能需要啟用 SSH 守護程序 sshd

$ sudo systemctl start sshd

反向構建一個 SSH 隧道

我們可以使用 ssh 命令連線到遠端伺服器。

$ ssh [your-account-login]@[server-ip]

建立連線後,遠端伺服器端的人員(例如系統管理員)應執行以下命令。

$ ssh -fN -R 8080:localhost:92 username@yourMachine-ipaddress.

系統上埠 8080 的 SSH 連線請求將通過此連線請求傳送到遠端伺服器上的埠 92。請求從你的機器到你的機器的 SSH 連線。

在此階段,你將建立與埠 8000 的連線。

$ ssh username@localhost -p 8000

然後你的請求將被轉發到遠端伺服器。因此,當要求提供這些詳細資訊時,請使用你的遠端伺服器帳戶登入密碼

你還可以使用 SSH 金鑰使從遠端計算機到本地計算機的連線更加安全。在遠端計算機上鍵入以下命令。

$ ssh-keygen

要構建一個安全的密碼,請使用由符號分隔的四個單詞,並確保只有知道該短語的人才能通過 SSH 訪問你的計算機,而無需輸入密碼

你還必須使用 ssh-copy-id username@localhost 命令將建立的 key 複製到本地計算機。