Túnel inverso SSH desde el archivo de configuración

Túnel inverso SSH desde el archivo de configuración

Estoy buscando una directiva de configuración de cliente ssh como LocalForwardesa que funciona como -Lparámetro CLIperopara el -Rparámetro

TL;DRdetalles completos del problema

Los datos:

repoServer -> myComputer -> NAT -> stagingServer

Tengo un servidor de repositorio git local que no está expuesto a Internet y un servidor de prueba remoto en el que tengo que implementar mi repositorio.

Para hacerlo, entro al stagingServer remoto con un socket inverso.

Configuración actual paraMi computadora:

Archivo:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes

en el que ejecuto: ssh StagingServer -R 8022:repository.local:22

Configuración actual paraservidor de ensayo:

Archivo:~/.ssh/config

Host repository
  Hostname localhost
  User git
  Port 8022
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_deployer

en el que puedo ejecutar: git clone git@repository:myProject.git

Y todo funciona bien, pero... finalmente

La pregunta:

¿Es posible especificar en el archivo de configuración del cliente ssh (~/.ssh/config) abrir el túnel inverso para no tener que agregar?-R 8022:repository.local:22

Respuesta1

Obviamente lo que estás buscando es RemoteForward, puedes encontrar el específico en el documento ssh_config...

Documentación:https://linux.die.net/man/5/ssh_config (Busque RemoteForward). Se explica por sí mismo.

Reenvío remoto

Especifica que un puerto TCP en la máquina remota se reenvíe a través del canal seguro al host y puerto especificados desde la máquina local. El primer argumento debe ser [ bind_address:]port y el segundo argumento debe ser host:hostport. Las direcciones IPv6 se pueden especificar encerrándolas entre corchetes o usando una sintaxis alternativa: [ bind_address/]port y host/hostport. Se pueden especificar varios reenvíos y se pueden proporcionar reenvíos adicionales en la línea de comando. Los puertos privilegiados solo se pueden reenviar cuando se inicia sesión como root en la máquina remota.

Luego la configuración paraMi computadorase convierte en:

Archivo:~/.ssh/config

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

información relacionada