Erro “Nenhum arquivo ou diretório” ao tentar copiar (usando scp) do host remoto para a máquina local

4

Estou tentando copiar um arquivo (/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip) do meu host remoto para a área de trabalho da minha máquina local (/ Users / username / Desktop) usando o scp comando.

Para conseguir isso eu corro o iTerm no meu Mac e uso o seguinte comando:

scp -r [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

(Também pode ser interessante notar que estou logado via ssh no meu host remoto enquanto tento executar este comando.)

Quando executo o comando, sou solicitado a preencher a senha para [email protected] (o que eu faço) e, em seguida, recebo a seguinte mensagem de erro:

/Users/username/Desktop: No such file or directory

Da mesma forma, não consegui usar o scp para copiar arquivos para meu host remoto.

Qualquer ajuda com esse problema é muito apreciada, e espero que eu possa receber explicações simples / completas, já que sou completamente novo em usar uma linha de comando e ssh.

    
por K. Claesson 30.04.2017 / 09:04

1 resposta

1

scp não requer que você conecte o SSH ao computador remoto para fazer a cópia (e é aqui que você está tendo problemas com seu comando).

scp essencialmente funciona em uma forma de empurrar ou puxar. Você pode enviar arquivos / pastas do seu PC local para um controle remoto. A sintaxe do comando para este método é a seguinte:

scp /folderpath/tofile/file.txt user@remotehost:/folderpath/tocopyfileto/

O que solicitará a senha de user on remotehost .

Você também pode puxar arquivos / pastas de um PC remoto para o seu PC local. A sintaxe do comando para este método é a seguinte:

scp user@remotehost:/folderpath/tofile/file.txt /folderpath/tolocalfolder/

O que também solicitará a senha para user on remotehost .

O problema que você estava enfrentando com o comando acima é que você estava usando a sintaxe de recepção de dados do comando scp para pegar um arquivo de um host remoto, mas também estava SSH nesse host remoto enquanto o executava.

A maneira correta de executar este comando é executá-lo em sua máquina local

scp -P 2222 [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

** Observe que removi o -r supérfluo do seu comando original. Não é algo que cause um erro, mas é apenas que não é necessário no seu caso. A opção -r de scp deve ser usada quando copiar recursivamente uma pasta e todo o seu conteúdo. No seu caso, você estava apenas copiando um arquivo para que não fosse necessário.

** Eu também adicionei o -P 2222 desde que seus comentários subseqüentes indicaram que você precisava usar a porta 2222 em vez da porta padrão 22.

    
por 01.05.2017 / 03:47