Linux

如何在兩個 RHEL 伺服器之間使用 Putty 配置 ssh 隧道?

  • December 3, 2013

我正在嘗試通過 Win/Putty 網關允許從遠端 RHEL 伺服器到本地 RHEL 機器的 ssh 訪問。基本上,我希望能夠在遠端伺服器上執行“ssh localhost -p 512”,以便它可以連接到本地網路中的 RHEL 伺服器。本地網路超出了防火牆,因此我可以使用 Putty/ssh 從我的 Win PC 連接到遠端伺服器,但反之則不行。

LclSrv—-WinXP/Putty—–||—–RmtSrv

所以,我在 Putty 的目前 RmtSrv 會話中添加了以下隧道設置(實際上我使用的是 Kitty,但沒關係):

R512 LclSrv:22

我希望這會在遠端伺服器上創建一個程序,該程序偵聽埠 512 並將連接傳輸到本地網路/LclSrv 埠 22。

按下開始按鈕後,Putty 成功打開正常 ssh 終端會話,但沒有任何反應。(選項顯示活動埠轉發)。我用 netstat -l 檢查了埠 512 沒有在 RmtSrv 上監聽。此埠上的 ssh 返回“連接被拒絕”。我究竟做錯了什麼?可能需要更改 sshd_config 中的某些內容以允許隧道傳輸?是否是 RmtSrv 上的使用者權限阻止我創建隧道?我有 sudo 順便說一句。

乾杯,弗拉德。

本地埠轉發場景(rmtsrv 可以訪問 WinXP):

您想要在 ssh 術語中做的是將本地埠轉發到另一台機器並允許其他主機 (rmtsrv) 連接到它。

所以你設置本地 WinXP:512 轉發到 lclsrv:22。

因此,在 Putty 的隧道設置中,請務必檢查Local ports accept connections from other hosts並將source port 512目的地添加lclsrv:22到轉發埠。

編輯以適應評論:遠端埠轉發方案(WinXP 可以訪問兩個 srv):

您建議的配置應該可以工作。

r512 LclSrv:22

是正確的。我猜問題出在 rmtsrv 上的 sshd 安全設置上。檢查是否啟用:

AllowTcpForwarding yes

如果您想為 rmtsrvs 網路上的其他人啟用對轉發埠的訪問:

GatewayPorts yes

配置通常位於 ‘/etc/ssh/sshd_config

引用自:https://serverfault.com/questions/558831