Como SCP um arquivo (s) do Ubuntu Virtual Machine para o host remoto?

2

Eu estou tentando SCP alguns arquivos do meu Ubuntu 10.04 Virtual Machine local (em execução em uma plataforma Windows Vista) até o meu host remoto. O SSH está habilitado e eu consegui fazer o login por meio da linha de comando, então sei que estou usando a porta certa. Aqui está o que eu tentei:

Eu faço o login no host via SSH shell. Então, no prompt de comando "remoteuser @ remotehost" eu digite:

scp -P PORT# -r [email protected]:/~/fromFolder/ ~/public_directory/toFolder/

onde PORT# é uma porta real # como 22

Me pediram a senha de [email protected] , mas não usaria a senha que eu normalmente uso com essa conta localhost.

Qual é a melhor maneira de usar scp ? Eu faço o login do host remoto via SSH e, em seguida, executo scp no prompt de comando remoteuser@remotehost$ ou devo apenas executar o SCP do meu localhost?

    
por Nona 14.10.2011 / 07:57

1 resposta

2

A sintaxe correta seria algo assim:

scp -P 234 -r ~/local/directory [email protected]:/remote/directory

O código mostrado tenta copiar arquivos da sua máquina local acessados via host local para sua máquina local acessada diretamente

UPDATE: Se você está tentando emitir o comando scp de uma sessão ssh no host remoto para copiar arquivos de volta para o seu virtualbox Ubuntu, então eu tenho medo que não seja impossível a maioria dos casos - ie é muito provável que a instância virtual do Ubuntu não possa ser conectada do mundo externo a menos que você tenha feito alguma configuração (por exemplo, configurar um adaptador em ponte no sistema operacional host, configurar o encaminhamento de porta no modem etc.). Além disso, o endereço IP que você está tentando usar - 127.0.0.1 - é um endereço de "loopback local" e só é acessível pela mesma máquina. Ou seja Quando você executa o comando no servidor, esse IP refere-se ao servidor.

Então, eu ainda estou sugerindo que você use a sintaxe que mostrei acima - apenas tenha em mente que "local" no comando significa "a máquina na qual você tem uma sessão de terminal aberta", não a máquina física que você está sentado em.

Exemplo: se você deseja copiar um arquivo de um servidor para outro:

# copy a file from local machine to server1.com
user@local-machine# scp ./somefile.txt [email protected]:/home/user2

# copy a file from server1.com to server2.com
user@local-machine# ssh [email protected]
user1@server1# scp ./somefile.txt [email protected]:/home/user2
user@server1# logout

# copy a file from server2.com to server1.com
user@local-machine# ssh [email protected]
user2@server2# ls
    somefile.txt    otherfile.txt
user2@server2# scp ./otherfile.txt [email protected]:/home/user1
user2@server2# logout

# can't copy a file TO local-machine because it's not accessible from internet
    
por Sergey 14.10.2011 / 08:13