天天看點

OpenSSH 進階運用兩則

大家都隻知道 ssh 可以基于密碼或密鑰登入遠端主機使用,但是你知道嗎?其實 ssh 還可以在運用在公網伺服器連接配接私有ip虛拟機,還可以實作指令行 ssh 代理。

<a target="_blank"></a>

試驗環境為兩台 centos 系統:

一台為公網伺服器 rabbit :45.xxx.xxx.212

OpenSSH 進階運用兩則

一台為 virtualbox nat 模式下的 centos 虛拟機 centosa:10.0.2.15

nat 普遍使用在有多台主機但隻通過一個公有 ip 位址通路網際網路的私有網絡中,它允許了多台主機共享一個公用 ip 位址(即虛拟機的所有資料包最後都由網絡中那台有公網 ip 位址主機轉發出網際網路)。

OpenSSH 進階運用兩則
OpenSSH 進階運用兩則

首先在 nat 後面的虛拟機内建立端口轉發,通過如下指令:

<code>ssh -gfn -r &lt;公網映射端口&gt;:127.0.0.1:&lt;本地端口&gt; &lt;目标公網&gt;</code>

指令中“ssh”參數介紹:

-g:允許遠端主機連接配接到本地建立的轉發端口

-fn:不登入不執行腳本或指令(經常連用)

-c:壓縮資料傳輸(小帶寬可用)

-r:程式級端口轉發 ,“port:host:hostport”方法(必須使用)

在我們的例子中,指令如下(處于安全的原因,隐藏了遠端公網位址):

<code># ssh -gfn -r 1111:127.0.0.1:22 45.xxx.xxx.212</code>

OpenSSH 進階運用兩則

接着,從公網伺服器 45.xxx.xxx.212 上連接配接 nat 後面的虛拟機,輸入指令:

<code>ssh -p 1111 localhost</code>

OpenSSH 進階運用兩則

以上從公網伺服器連接配接到虛拟機私有 ip 實驗結束,下面是運用 ssh 建立 proxy 代理。

代理proxy,也稱網絡代理,是一種特殊的網絡服務,允許一個網絡終端(一般為用戶端)通過這個服務與另一個網絡終端(一般為伺服器)進行非直接的連接配接。一些網關、路由器等網絡裝置具備網絡代理功能。一般認為代理服務有利于保障網絡終端的隐私或安全,防止攻擊。

OpenSSH 進階運用兩則

圖解:左邊和右邊的電腦在通訊時候,需要經過中間的電腦中轉,而中間的那部電腦就是代理伺服器。

簡單的說就是 a 要通路 c,即便可以直接通路 c,但是有倆個問題:一個是安全的問題,另外還有就是“過濾問題”。

于是我們有了“代理”就是讓我們 a 連接配接 b,由 b 去通路 c,b 最後“加密”傳送給使用者,最後使用者就得到了想要的來自 c 的資訊。

本機輸入如下指令實作 ssh 代理:

<code> ssh -nnt &lt;user&gt;@&lt;ip&gt; -d &lt;port&gt;</code>

參數介紹:

-n:背景運作

-n:不執行遠端指令

-t:不配置設定 tty ,隻做代理用

-d:指定代理端口 

OpenSSH 進階運用兩則

上述指令的意思是,在本地監聽端口 1111,将通路到該端口的流量轉發到遠端伺服器,遠端伺服器的使用者憑證由指令行指定。

至此,ssh 代理設定已經完成了。後面要用代理工具完成 ssh 代理。

OpenSSH 進階運用兩則
OpenSSH 進階運用兩則

這裡我們通過了代理設定,我們的浏覽器和“阿裡雲”伺服器連接配接完成~這樣我們就可以代理上網、加速上網。甚至還可以科學上網!

OpenSSH 進階運用兩則

第一節希望讓大家靈活運用 ssh,ssh 的功能不僅僅隻是簡單的遠端連接配接部署。通過 ssh 設定,可以讓任何一台機器通過 ssh 相連接配接的!第二篇的意義在于享受遠端任何一台機器同時,還可以明白,能完成互連的 ssh。當然也可以完成代理~!

原文釋出時間為:2016-06-18

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀