Estoy buscando una directiva de configuración de cliente ssh como LocalForward
esa que funciona como -L
parámetro CLIperopara el -R
pará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