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