Como posso copiar corretamente uma pasta do meu computador local para o meu servidor usando o SSH? Por que o comando scp entra em erro?

0

Eu estou conectado ao meu servidor web via SSH usando uma ferramenta chamada MobaXterm (é algo como Putty, mas com recurso avançado, isso não é tão importante ... )

Meu problema é que eu quero enviar um diretório do meu computador local (Windows) para um diretório específico deste servidor (Linux).

Então, eu tentei usar o comando scp como mostrado aqui: link

Eu fiz assim:

-jailshell-4.1$ scp -r C:\Users\Andrea\Documents\Betrivius\candycane-0.9.6\candycane /home6/XXX/public_html

ssh: Could not resolve hostname C: Name or service not known

Mas, como você pode ver, eu recebo um erro.

Por quê? o que estou perdendo? Como posso resolver este problema?

Tnx

    
por AndreaNobili 18.09.2016 / 16:49

2 respostas

1

A menos que o servidor da Web tenha uma maneira de se conectar diretamente à sua máquina Windows (na porta 22, que exigirá que um daemon SSH esteja em execução, bem como portas sendo encaminhadas), será necessário chamar o SCP do lado do Windows. O MobaXTerm é um cliente ssh, não tenho certeza se ele tem SCP embutido (não o uso pessoalmente), mas a melhor solução aqui é usar um cliente SCP, seja um cliente de linha de comando ou um cliente GUI.

Um cliente popular para o Windows é WinSCP , é meu cliente goto quando não tenho escolha, mas para usar o Windows.

    
por 18.09.2016 / 18:27
1

Presumivelmente, você está executando isso em um shell local do MobaXterm (ou seja, local para a máquina do Windows). Se for esse o caso, você precisará atualizar a sintaxe do comando scp para acomodar esse ambiente, embora a sintaxe esteja incorreta independentemente disso.

O MobaXterm fornece acesso às unidades locais em seu shell por meio do ponto de montagem /drives/X , com X sendo a letra da unidade do Windows.

Além disso, a sintaxe geral (simplificada) do scp, independentemente do ambiente, é:

uso do scp:

scp [[user@]host1:]/path[/filename] [[user@]host2:]/path/[filename]

A primeira seqüência ( [[user@]host1:]/path[/filename] ) é a seção 'FROM'; a origem do arquivo ou arquivos a serem copiados. O segundo é o 'TO'; o destino. Os colchetes indicam argumentos opcionais.

É realmente apenas uma versão do comando cp padrão habilitada para ssh; com a seção anterior ao : contendo a informação específica do ssh, e a informação posterior referente à operação cp.

usuário:

user é o seu nome de usuário local atual - ele pode ser deixado de fora se esse for o nome de usuário correto na origem e no destino.

host:

host padrão para o computador local (localhost); então, se você está copiando de / para a máquina local E o nome de usuário no localhost a ser usado é o usuário atual, você pode omitir esse argumento para o (s) arquivo (s) local (is).

arquivo / caminho:

path/filename é padronizado para o diretório inicial dos usuários especificados e pode ser omitido se desejado. filename pode ser deixado de fora ao fazer uma cópia recursiva como na sua situação - apenas forneça o caminho nesse caso. Geralmente, o caminho completo e o nome do arquivo são especificados na seção FROM e apenas o caminho na seção TO (será padronizado manter o mesmo nome de arquivo).

Estou usando remoteuser e remotePC como o nome de usuário e o nome do host do PC remoto; substitua pelos nomes corretos.

Corrija a sintaxe no seu exemplo:

 scp -r "/drives/C/Users/Andrea/Documents/Betrivius/candycane-0.9.6/candycane" remoteuser@remotePC:/home6/XXX/public_html

Use o comando man scp ou este site para detalhes adicionais (argumentos, outras informações de uso).

Opção GUI

Como alternativa, o MobaXterm fornece um navegador de arquivos gráficos (construído em sftp ou scp com base nas opções de configuração) que fornece transferências de arquivos bidirecionais de arrastar e soltar quando você se conecta ao host remoto via ssh. Detalhes aqui .

    
por 18.09.2016 / 23:14