SSH Tunnel是一種基於SSH Protocol所延伸出來的應用,其可運用在兩個端點間建立安全的存取通道,讓一些不具加密存取能力的通訊協定,可以被包附在SSH協定之中,藉以提供安全的網路服務存取服務。
如圖一所示我們以POP3協定為例,如果POP3 Client直接與POP3 Server連接時,其Client – Server間將會以明碼的方式進行溝通,而這將會有安全上的顧忌,此時我們可以運用SSH協定在Server及Client之間搭建SSH Tunnel,並且讓POP3 Client藉此通道與POP3 Server進行連繫,以達成安全存取的目的。
[root@server ~] ssh -L 127.0.0.1:1234:server:110 root@server
我們只需要在command line下如上指令即可,其中 -L 127.0.0.1:1234 即表示要求ssh client在 127.0.0.1的IP上開啓 port 1234,並且要求ssh server將封包解密後轉交給server的port 110。
在Windows下我們需要所安裝putty工具,該工具可至http://www.putty.org免費取得,並將SSH的連線參數指定好。
接下來請在Connection SSH Tunnels選項內的 Source Port 欄位輸入 1234,並在Destination欄位內輸入 server:110最後在點選Add按鈕,完成後即可在Forwarded ports欄位內看到 L1234 server:110的參數,其意義與Linux command line 指令中的 -L 127.0.0.1:1234:server:110完全相同。