Acessando o repo local através da caixa de salto com SSH

2

Eu tenho um appliance que tem um repositório do apt-get instalado nele. Normalmente eu uso o seguinte comando para que eu possa apt-get de um servidor remoto.

ssh user@IPofRemoteServer -R8880:127.0.0.1:8880

No entanto, isso exige que o appliance 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 update com sucesso do 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, na pesquisa, acho que isso se deve à porta 8880, indo para 80 no Jumpbox e não traduzindo para encaminhar ao repositório local.

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

    
por Kirs Kringle 28.09.2016 / 06:25

2 respostas

4

Não é suficiente para:

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

Eu entendo que a porta de servidores remotos é acessível a partir do host de salto?

EDITAR: Agora, eu 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ê deve poder fazer uma atualização no yum.

EDIT2: Se você quiser usá-lo na linha de comando sem arquivo de configuração, use o interruptor -J :

-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.
    
por 18.10.2016 / 12:17
1

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

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

Ou 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 ssh-agent no local, ou precisa estar conectado a ele com ssh -A de uma máquina com um agente.

Naturalmente, seu arquivo /etc/apt/sources.list no controle remoto precisaria ter uma referência ao localhost: 8880.

    
por 21.10.2016 / 02:23