Acho que você está apenas tentando copiar arquivos do servidor por trás do NAT por meio de gatewayserver
.
Eu sugeriria uma solução mais simples.
- Configure a autenticação sem senha (coloque a chave privada da sua área de trabalho / Mac nos dois servidores mencionados)
-
Use algo como
ssh -MNf -L 60022:storageserver:22 username@gatewayserver
para configurar o túnel ssh via
gatewayserver
. Agora a porta do seu Mac60002
tem conexão direta com a porta22
destorageserver
. -
Neste ponto, você pode copiar arquivos diretamente através deste túnel:
scp -P 60022 -R username@localhost:/path/to/folder .
Coloque esses comandos em seu script bash e você conseguirá o que deseja.
UPD:
Juntando tudo, aqui está o script completo:
#!/bin/bash
# set up tunnel
ssh -MNf -L 60022:storageserver:22 gatewayserver_username@gatewayserver || true
# copy files __directly__ into correct backup folder
scp -P 60022 -R "storageserver_username@localhost:/remote/path/to/retrievedfolder/at/storageserver" "/local/path/to/backup/retrievedfolder.'date +%Y%m%d'"
Pré-requisitos (execute apenas uma vez no seu Mac):
# Create SSH keys @ local machine
ssh-keygen
# Put your local SSH key to the gateway server
ssh-copy-id gatewayserver_username@gatewayserver
# Enable tunnel (will not ask your password if previous steps are correct)
ssh -MNf -L 60022:storageserver:22 gatewayserver_username@gatewayserver
# Put your local SSH key to the storageserver server
ssh-copy-id -p 60022 storageserver_username@localhost