Port-Forwarding

如何將本地轉發設置添加到我的 ssh 配置文件?

  • December 17, 2021

我目前可以這樣做:

ssh 12.34.56.78 -L 8888:localhost:8000

然後我可以打開本地瀏覽器到 localhost:8888 並在 12.34.56.78:8000 看到在我的伺服器中執行的應用程序。

我想避免輸入該轉發命令,而是將該配置放在我的 ssh 配置文件中。

目前我有這個:

Host myhost
   User myuser
   Hostname 12.34.56.78
   IdentityFile ~/.ssh/id_rsa
   LocalForward 8888 12.34.56.78:8000

我認為它的工作原理是一樣的,但是當我像往常一樣 ssh 進入myhost,然後嘗試打開瀏覽器到 localhost:8888 時,我再也看不到應用程序正在執行,並且我在 myhost 控制台中收到這些消息:

channel 4: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused
channel 4: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused

我想我可以添加一個別名來執行 ssh 命令並完成它,但我希望在我的配置文件中正確設置這個,並且,如果能夠看到我的應用程序在我的瀏覽器中執行而無需 ssh進入我的主機可以實現可能是一個巨大的加分。

任何人都可以幫助解決這個問題嗎?

ssh_config 文件的語法是正確的 - 所以錯誤必須在其他地方。有效的命令行是:

ssh 12.34.56.78 -L 8888:localhost:8000

但在LocalForward指令中,您使用了“真實”IP 地址。顯然,應用程序只是監聽了 localhost - 要麼更改應用程序中的監聽介面,要麼調整 ssh_config 文件以使用 localhost。

我認為,您定義了不同的命令和配置。在命令中,您使用localhost並在配置中使用 IP 地址(12.34.56.78)。這應該適合你:

Host myhost
   User myuser
   Hostname 12.34.56.78
   IdentityFile ~/.ssh/id_rsa
   LocalForward 8888 127.0.0.1:8000

或者您可以嘗試將127.0.0.1替換為localhost,我認為它也應該可以工作。

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