Para mí las redes son algo muy "opaco", e incluso leyendo muchos tutoriales sobre SSH, no entiendo cómo crear un túnel básico para transferir mis archivos.
La configuración es la siguiente:
My Computer --[Internet]--> Bridge Machine --[Local Network]--> Final Machine
Actualmente hago lo siguiente:
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 .
Lo cual es bastante complicado. Mi pregunta es básica: ¿cómo simplificar esto usando un túnel SSH?
(y por favor explíqueme el significado de cada línea de comando que escribe, para entender lo que realmente hace cada línea y evitar usarla como algo mágico. Además, si se usan algunos números de puertos, explíqueme si puedo elegir un número completamente aleatorio o si tengo que elegir uno específico.)
Respuesta1
Configure un archivo de configuración ssh:
~/.ssh/config
Este archivo le ayudará de varias maneras, pero en última instancia le permitirá hacer todo esto en un solo paso.
Primero, configure alias para cada máquina
Host bridge
User username
Host final
User username
Ahora puede utilizar "ssh -X bridge" para conectarse con la primera máquina.
Para el siguiente paso, necesitará netcat en cada máquina (pruebe "cuál nc") para verificar. Luego, use un ProxyCommand con la configuración 'final' de sus máquinas para que diga:
Host final
User username
ProxyCommand ssh -CAYq bridge exec nc %h %p
Este comando envía lo que desee a través de la máquina central para alojar %h en el puerto %p (es decir, si desea enviar datos de otras aplicaciones a través de diferentes puertos, puede hacerlo, siempre y cuando esta conexión esté abierta)
Si tiene claves configuradas, tampoco se le solicitará la contraseña; de lo contrario, se le solicitará la del puente primero y luego la final.
Ahora "ssh final" debería funcionar, así como:
scp -r final:/.../directory .