arquivos ftp via intermediário jump-server

0

Na minha empresa, acessamos nossos dispositivos eletrônicos remotos por meio de um servidor de salto. Quando precisamos baixar arquivos dos dispositivos, fazemos o seguinte:

  1. ssh jump.server.com
  2. wget ftp // device_ip / filepath (faz o download do arquivo para o servidor de salto)
  3. scp o servidor de salto da máquina local para obter o arquivo.

Estou tentando simplificar isso usando o encaminhamento de porta ssh para poder fazer o download do arquivo diretamente dos dispositivos remotos para a nossa máquina. Eu segui esta resposta :

ssh -L 9000:device_ip:21 jump.server.com
wget ftp://localhost:9000/filepath

Mas estou recebendo o seguinte erro:

227 Entering Passive Mode (10,192,1,16,19,129).
trying to connect to 10.192.1.16 port 4993
Closed fd 4
Closed fd 3
couldn't connect to ipaddress port 4993: Connection timed out
Giving up.

O problema não é o modo passivo que o wget usa porque funciona ao usar o método antigo.

Alguma sugestão do que poderia estar causando o problema? Nossos computadores executam o Ubuntu se isso ajudar.

    
por Rayniery 03.09.2018 / 05:18

1 resposta

2

O FTP usa a porta 21 para a conexão de controle, mas, em seguida, precisa dos dados reais para transferir conexões adicionais usando portas diferentes, acordadas dinamicamente. Isto torna impossível simplesmente encapsular o FTP através de uma única conexão TCP, não importa se o modo ativo ou passivo.

Se o seu cliente FTP suportar o protocolo SOCKS, você pode tentar configurar o ssh como servidor SOCKS com a opção -D e depois usá-lo com o modo passivo FTP.

Outra opção seria não fazer login, pegar o arquivo e transferi-lo de volta, mas fazer tudo de uma vez:

$ ssh user@remote wget -O - ftp://host/file > file
    
por 03.09.2018 / 05:32