來自配置文件的 SSH 反向隧道
我正在尋找一個像CLI 參數一樣的 ssh 客戶端配置指令
LocalForward
,但對於參數-L``-R
TL;DR完整的問題詳細資訊
數據:
repoServer -> myComputer -> NAT -> stagingServer
我有一個不暴露在網際網路上的本地 git 儲存庫伺服器和一個我必須在其上部署我的 repo 的遠端登台伺服器。
為此,我使用反向套接字 ssh 進入遠端 stagingServer。
myComputer的目前配置:
文件:
~/.ssh/config
Host StagingServer Hostname staging.acme.com User username PreferredAuthentications publickey IdentityFile ~/.ssh/id_username ForwardAgent yes
我在上面執行:
ssh StagingServer -R 8022:repository.local:22
stagingServer的目前配置:
文件:
~/.ssh/config
Host repository Hostname localhost User git Port 8022 PreferredAuthentications publickey IdentityFile ~/.ssh/id_deployer
我可以在其上執行:
git clone git@repository:myProject.git
一切正常,但是……最後
問題:
是否可以在 ssh 客戶端配置文件(~/.ssh/config)中指定打開反向隧道,這樣我就不用添加了
-R 8022:repository.local:22
顯然你正在尋找的是 RemoteForward,你可以在 ssh_config Doc 中找到具體…
文件:https : //linux.die.net/man/5/ssh_config(搜尋 RemoteForward)。這是不言自明的。
遠端轉發
指定遠端機器上的 TCP 埠通過安全通道從本地機器轉發到指定的主機和埠。第一個參數必須是
$$ bind_address: $$埠和第二個參數必須是主機:主機埠。IPv6 地址可以通過將地址括在方括號中或使用其他語法來指定:$$ bind_address/ $$埠和主機/主機埠。可以指定多個轉發,並且可以在命令行上給出額外的轉發。只有在遠端電腦上以 root 身份登錄時才能轉發特權埠。
然後myComputer的配置變為:
文件:
~/.ssh/config
Host StagingServer Hostname staging.acme.com User username PreferredAuthentications publickey IdentityFile ~/.ssh/id_username ForwardAgent yes RemoteForward 8022 repository.local:22