Accediendo al repositorio local a través de Jump Box con SSH

Accediendo al repositorio local a través de Jump Box con SSH

Tengo un dispositivo que tiene instalado un repositorio apt-get. Normalmente uso el siguiente comando para poder acceder apt-geta él desde un servidor remoto.

ssh user@IPofRemoteServer -R8880:127.0.0.1:8880

Sin embargo, esto requiere que el dispositivo de repositorio local tenga una conexión con el servidor remoto.

Necesito hacer lo siguiente:

local repo ---> jumpbox ---> remote server

Entonces puedo ejecutar apt-get updatecon éxito desde el repositorio local.

Intenté lo siguiente para hacer esto sin éxito:

ssh -A -t user@jumpbox -R8880:127.0.0.1:80 ssh -A -t user@remoteServer -R8880:127.0.0.1:80

Sin embargo, esto no funciona y, tras investigar, creo que esto se debe a que el puerto 8880 simplemente va al 80 en el jumpbox y en realidad no lo traduce para reenviarlo al repositorio local.

Probé variaciones sin éxito y necesito hacer esto para actualizar ese servidor remoto.

Respuesta1

¿No es suficiente con:

ssh -A -t user@jumpbox -R8880:remoteServer:80

Entiendo que se puede acceder al puerto de servidores remotos desde Jump Host.

EDITAR: Ahora, entiendo que tiene algún repositorio local que desea mostrar en el host remoto y usarlo.

Bueno, normalmente lo uso así: En ~/.ssh/config:

Host TargetServer
    Hostname remoteServer
    ProxyJump jumpbox

Y ahora puedes simplemente establecer una conexión ssh a tu servidor remoto:

ssh TargetServer -R8880:localhost:80

Ahora ha iniciado sesión en su servidor de destino. Puedes verificar si el túnel está abierto:

netstat -lapn | grep 8880

Y, por supuesto, deberías poder realizar una actualización de Yum allí.

EDITAR2: Si desea usarlo en la línea de comando sin usar el archivo de configuración-Jcambiar:

-J [user@] host [:port]
   Connect to the target host by first making a ssh connection to the jump host and then establishing a
   TCP forwarding to the ultimate destination from there.  Multiple jump hops may  be  specified  sepa‐
   rated by comma characters.  This is a shortcut to specify a ProxyJump configuration directive.

Respuesta2

No estoy seguro de haber entendido correctamente su pregunta porque dice que desea "apt-get (...) desde un servidor remoto" y también "ejecutar apt-get update (...) desde el repositorio local".

Aquí supongo que el local aloja el repositorio y el remoto quiere conectarse a él.

O dos comandos como este:

local$   ssh -R 54321:localhost:8880 user@jumpbox
jumpbox$ ssh -R 8880:localhost:54321 user@remote
remote$  apt-get ...

O simplemente:

local$  ssh -tAR 54321:localhost:8880 user@jumpbox ssh -R 8880:localhost:54321 user@remote
remote$ apt-get ...

Para el último, necesita un agente ssh local o debe estar conectado a él ssh -Adesde una máquina que tenga un agente.

Por supuesto, su /etc/apt/sources.listarchivo remoto deberá tener una referencia a localhost:8880.

Respuesta3

Encontré este comando útil:

ssh -L LOCAL_PORT:WEBSERVER:REMOTE_PORT -J jumpuser@JUMPHOST remoteuser@REMOTEHOST

Referencia:https://pillpall.github.io/linux/2018/02/06/sshscp_jumphost.html

información relacionada