scp/rsync via ssh tunnel
Es kommt ja immer wieder vor, dass man Files an einen Host senden will, aber von extern nur eine Gateway-Maschine erreichbar ist. Man muss das ganze also via Port Forwarding über diesen Gateway laufen lassen. Keine grosse Sache, aber wenn man’s ne Weile nicht gebraucht hat, muss man (zumindest ich) immer erst wieder ein bisschen hirnen…drum kommt’s jetzt hier in den Blog…
Zuerst also das Portforwarding. Ich nehme jetzt hier einfach mal 2222.
ssh -L 2222:remote_node:22 user@gateway_node
Das ganze ist eigentlich immer dasselbe, in diesem Stil:
ssh -L:: @
nun kopiert man das ganze also an localhost, auf den definierten Port
scp -P 2222 /pfad/zu/den/files remote_node_user@127.0.0.1:/zieldirectory
Ein rsync kann natürlich auch auf diese Weise ausgeführt werden…
rsync -rtv --progress -e "ssh -p 2222" /pfad/zu/den/files remote_node_user$@127.0.0.1:/zieldirectory