Qual comando de terminal posso usar para transferir um diretório de uma máquina remota (linux) para minha máquina local (mac)?Mais importante ainda, eu gostaria de fazer isso na linha de comando enquanto estiver usando SSH na máquina remota.Eu sei como usar o SCP na linha de comando da minha máquina local, mas não tenho ideia de como usá-lo na máquina remota (nem qual seria o meu caminho local).
Responder1
Inicie o sshd
em seu computador local, caso ainda não tenha feito isso. Então comece umsegundosessão do seu computador local para o computador remoto:
ssh -R 2222:127.0.0.1:22 user@remote
Isso encaminha a porta remota 2222 para a sshd
escuta em 127.0.0.1 no seu computador local, criando um arquivo reverse tunnel
. Em seguida, execute scp
no computador remoto:
scp -P2222 file 127.0.0.1:/path/
Responder2
Você também pode fazer o oposto, pegar um arquivo de uma máquina remota para a máquina local,
ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp
O comando ssh configura um túnel de localhost:2222 para a máquina remota 192.168.1.37 atrás do servidor voltado para a rede remoteserver.com. O segundo comando permite copiá-lo localmente.
Algunsbons exemplos e dicas aquie como configurá-lo em ~/.ssh/config para automatizá-lo.
Responder3
Se você estiver localmente atrás de um roteador/firewall que fornece um endereço IP privado, você precisará configurar o roteador para NAT uma porta para mapear para sua porta local 22. Você pode então acessá-lo a partir do computador remoto endereçando seuendereço IP públicoem qualquer porta que você escolher (você pode mapear a porta 22 diretamente, mas geralmente recomendo evitar isso, pois as portas de servidor padrão são alvos comuns para malware que tentam encontrar uma maneira de entrar).