反向 SSH 隧道
Nilesh Katuwal
2023年1月30日
你可以利用該已建立的連線通過從本地計算機到遠端計算機的反向 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
複製到本地計算機。