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

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

我正在寻找一个像CLI 参数LocalForward一样工作的ssh 客户端配置指令-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 Doc中找到具体的...

文档: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

相关内容