ssh隧道建立

2021-08-02 05:32:05 字數 876 閱讀 8011

問題:

目標伺服器(a)在nat之後,中介伺服器(m)在公網上,客戶端(c)在nat後,需要從c發起ssh連線到a。  

解決辦法:

1. 從a發起ssh連線到m,繫結m的遠端埠,假設a和m的ssh服務都在22埠監聽。

在a上執行: ssh -nfr 19022:localhost:22 user@host_m_ip -p 22

這句話的意思是將a主機的22埠和m主機的19022埠繫結,相當於遠端埠對映(remote port forwarding)。

2. ssh連線到m主機的9122埠就可以控制內網a主機了:

ssh localhost -p 19022

3. 通過金鑰驗證使用者身份,實現自動登入。

a) ssh-keygen (一直按enter,最後在~/.ssh/下生成金鑰)

b) ssh-copy-id user@host_m_ip -p 22

c) 這時候從a再次執行ssh -nfr 9022:localhost:9122 user@host_m_ip -p 22 就不需要輸入密碼了。

4. 使用autossh實現斷開自動重連

autossh -m 5678 -nr 19022:localhost:22 user@host_m_ip -p 22

比之前的命令新增的乙個-m 5678引數,負責通過5678埠監視連線狀態,連線有問題時就會自動重連,去掉了乙個-f引數,因為autossh本身就會在background執行。

5. 把以下命令放入開機啟動指令碼(/etc/rc.local),實現開機自動連線。

su user -l -c '/usr/bin/autossh -m 5678 -nr9022:localhost:9122 user@host_m_ip -p 22'

SSH 隧道技術

ssh 隧道 下面的命令告訴 ssh 1 ssh 2 n f l 5023 localhost 23 user foo.example.com 上述 ssh 命令使用了下面這些選項 2強制 ssh 使用第2版的協議 如果需要和較老的 ssh 一同工作請不要使用這個選項 n表示不使用命令列,或者說只使...

SSH 反向隧道

這篇文章主要介紹了如何利用ssh 反向隧道穿透nat,並演示了如何維持一條穩定的ssh 隧道。假設有機器a 和b,a 有公網ip,b 位於nat 之後並無可用的埠 現在想由a 主動向b 發起ssh 連線。由於b 在nat 後端,無可用公網ip 埠這樣乙個組合,所以a 無法穿透nat,這篇文章應對的就...

ssh反向隧道

47.47.47.47新增安全組規則,本機安裝cygwin,安裝連線 安裝net下的autossh 和openssh即可 將本機秘鑰匯入47.47.47.47 在cygwin終端,執行 ssh keygen t rsa,一路enter,直到秘鑰生成 伺服器47.47.47.47上,新建使用者,密碼 ...