
host1
為簡單起見,我有許多 ssh 主機(十幾個),host2
等等。
我經常需要轉發端口,例如
ssh -L 8888:localhost:8888 host1
ssh -L 8889:localhost:8888 host2
ssh -L 8890:localhost:80 host2
這很煩人,因為 1)我需要記住從本機連接埠到主機的映射,2)我需要手動執行此操作
我想實現某種監聽特定主機(本地,在我的機器上)的系統,例如host1.8888.ssh.local
並自動打開到該位址的隧道。
答案1
您可以在 ssh 設定檔中配置所有這些內容,通常位於以下位置:$HOME/.ssh/config
例如:
Host abc
Hostname 1.2.3.4
Port 345
IdentityFile /path/to/id_rsa
LocalForward 8888 localhost:8888
User root
Host def
Hostname 2.3.4.5
User root
LocalForward 8889 localhost:8889
這樣,您只需鍵入ssh abc
即可套用您在其中指定的所有設定。裡面找到的可用選項手冊頁。
答案2
答案3
來自未來的註釋,與所提出的問題無關,但解決了根本問題。
如果您在伺服器上使用VS Code 進行操作,則在啟動任何進程(例如Jupyter、Tensorboard、儀表板、Web 伺服器)後,VS Code 會將這些連接埠轉送到本機,因此無需記住任何內容,這些連接埠僅從您目前使用的主機 - 以及任意數量的端口,並且僅使用的端口。多麼方便啊!