Acessando o repositório local através do jump box com SSH

Acessando o repositório local através do jump box com SSH

Eu tenho um dispositivo que possui um repositório apt-get instalado. Normalmente eu uso o seguinte comando para fazer isso apt-getde um servidor remoto.

ssh user@IPofRemoteServer -R8880:127.0.0.1:8880

No entanto, isso requer que o dispositivo de repositório local tenha uma conexão com o servidor remoto.

Eu preciso fazer o seguinte:

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

Para que eu possa executar apt-get updatecom sucesso no repositório local.

Eu tentei o seguinte para fazer isso sem sucesso:

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

Isso, no entanto, não funciona e, após pesquisa, acho que isso se deve ao fato da porta 8880 ir para 80 no jumpbox e não traduzi-la para encaminhá-la para o repositório local.

Tentei variações sem sucesso e preciso fazer isso para atualizar esse servidor remoto.

Responder1

Não é suficiente:

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

Entendo que a porta dos servidores remotos pode ser acessada pelo host de salto.

EDITAR: Agora, entendo que você tem algum repositório local que deseja mostrar no host remoto e usá-lo.

Bem, normalmente eu uso assim: Em ~/.ssh/config:

Host TargetServer
    Hostname remoteServer
    ProxyJump jumpbox

E agora você pode simplesmente fazer uma conexão ssh com seu servidor remoto:

ssh TargetServer -R8880:localhost:80

Agora você está conectado ao seu servidor de destino. Você pode verificar se o tunel está aberto:

netstat -lapn | grep 8880

E é claro que você poderá fazer uma atualização do yum lá.

EDITAR2: Se você quiser usá-lo na linha de comando sem usar o arquivo de configuração-Jtrocar:

-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.

Responder2

Não tenho certeza se entendi sua pergunta corretamente porque você diz que deseja "apt-get (...) de um servidor remoto" e também "executar o apt-get update (...) a partir do repositório local".

Aqui, suponho que o local esteja hospedando o repositório e o remoto queira se conectar a ele.

Dois comandos como este:

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

Ou apenas:

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

Para o último, você precisa de um agente ssh local ou precisa estar conectado a ele ssh -Ade uma máquina que tenha um agente.

Obviamente, seu /etc/apt/sources.listarquivo remoto precisaria ter uma referência a localhost:8880.

Responder3

Achei este comando útil:

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

Referência:https://pillpall.github.io/linux/2018/02/06/sshscp_jumphost.html

informação relacionada