Criando um túnel ssh para transferir arquivos?

Criando um túnel ssh para transferir arquivos?

Para mim redes são uma coisa muito "opaca", e mesmo lendo muito tutorial sobre SSH, não entendo como criar um túnel básico para transferir meus arquivos.

A configuração é a seguinte:

My Computer --[Internet]--> Bridge Machine --[Local Network]--> Final Machine

Atualmente eu faço o seguinte:

1) Connect to the Bridge Machine with :
ssh -X [email protected]

2) Connect to the Final Machine with :
ssh -X username@finalmachine

3) I copy the address of files I need (for example .../mydirectory)

4) Then I deconnect from the finalmachine with :
exit

5) I copy the files to the bridge :
scp -r username@finalmachine:/.../mydirectory .

6) I deconnect from the bridge with :
exit

7) I copy the files to my machine :
scp -r [email protected]:/.../mydirectory .

O que é bastante complicado. Minha pergunta é básica: como simplificar isso usando um túnel SSH?

(e por favor me explique o significado de cada linha de comando que você escreve, para entender o que cada linha realmente faz e evitar usá-la como algo mágico. Além disso, se alguns números de portas forem usados, explique-me se posso escolher um número completamente aleatório ou se eu tiver que escolher um específico.)

Responder1

Configure um arquivo de configuração ssh:

~/.ssh/config

Este arquivo ajudará de várias maneiras, mas, em última análise, permitirá que você faça tudo isso em uma única etapa.

Primeiro, configure aliases para cada máquina

Host bridge
User username

Host final
User username

Agora você pode usar "ssh -X bridge" para conectar-se à primeira máquina.

Para esta próxima etapa, você precisará do netcat em cada máquina (tente "qual nc") para verificar. Em seguida, use um ProxyCommand com a configuração 'final' de suas máquinas para que leia:

Host final
User username
ProxyCommand ssh -CAYq bridge exec nc %h %p

Este comando envia o que você quiser através da máquina central para hospedar %h na porta %p (ou seja, se você quiser enviar dados de outros aplicativos em portas diferentes, você pode - desde que esta conexão esteja aberta)

Se você tiver chaves configuradas, também não haverá solicitação de senha; caso contrário: você será solicitado a fornecer a ponte primeiro e depois a final.

Agora "ssh final" deve funcionar, assim como:

scp -r final:/.../directory .

informação relacionada