來自設定檔的 SSH 反向隧道

來自設定檔的 SSH 反向隧道

我正在尋找一個 ssh 客戶端配置指令,就像CLI 參數LocalForward一樣-L對於-R參數

長話短說完整的問題詳細信息

數據

repoServer -> myComputer -> NAT -> stagingServer

我有一個未暴露在互聯網上的本地 git 存儲庫伺服器和一個必須在其上部署我的存儲庫的遠端臨時伺服器。

為此,我使用反向套接字 ssh 到遠端 stagingServer。

目前配置為我的電腦

文件:~/.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

目前配置為臨時伺服器

文件:~/.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

答案1

顯然你正在尋找的是RemoteForward,你可以在ssh_config文件中找到具體的...

文件:https://linux.die.net/man/5/ssh_config (搜尋 RemoteForward)。這是不言自明的。

遠端轉發

指定透過安全通道將遠端電腦上的 TCP 連接埠從本機電腦轉送至指定的主機和連接埠。第一個參數必須是 [bind_address:]port,第二個參數必須是 host:hostport。可以透過將位址括在方括號中或使用替代語法來指定 IPv6 位址:[bind_address/]port 和 host/hostport。可以指定多個轉發,並且可以在命令列上給予附加轉送。僅當以 root 身分登入遠端電腦時才能轉送特權連接埠。

然後配置為我的電腦變成:

文件:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes
  RemoteForward 8022 repository.local:22

相關內容