Ssh

來自配置文件的 SSH 反向隧道

  • January 22, 2020

我正在尋找一個像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

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