A resposta curta é que scp
faz coisas interessantes quando você dá dois endereços IP para trabalhar. Se sua origem ou destino for a máquina executando o comando scp
, um dos seus caminhos deverá ser local. Se você está no MyCloud, tente isto:
WDMyCloud:~# scp [email protected]:/Users/***/Desktop/Apple.jpg /DataVolume/shares/Ben
Ou se você estiver em sua máquina local:
LocalComputer:~# scp /Users/***/Desktop/Apple.jpg [email protected]:/DataVolume/shares/Ben
Se você está curioso sobre o que está acontecendo neste caso, pode ver a saída " Executing:
" do seu scp -v
.
Executing: /usr/bin/ssh '-x' '-oClearAllForwardings=yes' '-n' '-v' '-l' 'Ben' '--' '192.168.1.20' 'scp -v' '/Users/Ben/Desktop/Apple.jpg' '[email protected]:/DataVolume/shares/Ben'
Uma coisa interessante sobre ssh
é que você pode usá-lo para executar um único comando imediatamente, em vez de um shell interativo. O que está acontecendo aqui é que, em vez de copiar o arquivo em si, seu scp
está solicitando 192.168.1.20 para manipular a cópia. É como se você tivesse o seguinte:
WDMyCloud:~# ssh [email protected]
Password: [password to Ben@LocalComputer goes here]
LocalComputer:~$ scp /Users/***/Desktop/Apple.jpg [email protected]:/DataVolume/shares/Ben
Password: [password to root@WDMyCloud goes here]
LocalComputer:~$ exit
Por que scp
faz isso? É uma medida de eficiência que faz muito mais sentido para o seguinte caso:
LocalComputer:~$ scp [email protected]:/path/to/Apple.jpg [email protected]:/DataVolume/shares/Ben
Nesse caso, o arquivo está em um computador remoto e você deseja copiá-lo em outro computador remoto. Se o seu computador local fizesse a cópia, ele seria amarrado durante todo o processo de cópia, transportando bits de um computador remoto para o outro. É muito mais eficiente ter um dos controles remotos conectados diretamente ao outro.