extensão ou programa da shell para transferir dados da máquina remota para a local e vice-versa [duplicado]

0

Eu tenho máquina local (L) e uma máquina remota (R) que só é acessível pulando (A), (B).

Para transverter um arquivo, minha rotina normal parece assim:

l@L$ ssh -t a@A ssh -t b@B ssh r@R
r@R$ # do some stuff till I find out I want to copy file x to L

Eu então abro um novo terminal

l@L ssh a@A
a@A ssh b@B
b@B scp r@R:PATH_TO_FILE a@A:TEMP
b@B <ctrl-D> to close
a@A scp TEMP r@R l@L:FINAL_DESTINATION

e scp meu arquivo em todos os saltos.

Gostaria de saber se existe uma extensão ou programa de shell que permita copiar arquivos diretamente de R. Algo semelhante a stdout @ R para stdin @ L para cat. Não precisa ser muito eficiente. Como na maioria das vezes meus arquivos são pequenos (< 100kB), mas ele precisa suportar binário.

    
por magu_ 06.01.2017 / 17:47

1 resposta

0

Você pode querer olhar para a configuração ssh do ProxyCommand , o que permite que isso funcione de forma mais perfeita, e funcionará para shells, SFTP, túneis e qualquer outra coisa que você queira para proxy via ssh. / p>

Digamos que você tenha os três hosts a seguir:

  • workstation.example.com - Esta é a máquina em que você está trabalhando fisicamente
  • proxy.example.com - Esta é a máquina para a qual você está roteando seu tráfego SSH através de
  • endpoint.example.com - Aqui é onde você deseja que o tráfego acabe

Em ~/.ssh/config on workstation , adicione o seguinte:

Host endpoint
    User WorkstationUser # set this to the username on the workstation host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

No host proxy , certifique-se de que nc (netcat) esteja instalado.

Em seguida, em workstation , você pode ssh endpoint ou sftp endpoint e será transparentemente intermediado por proxy para a máquina por meio de seu host proxy.

    
por 06.01.2017 / 18:01