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

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

Estou conectado ao meu servidor web viaSSHusando uma ferramenta chamadaMobaXterm(é algo parecido com o Putty, mas com recursos avançados, isso não é tão importante...)

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

Então eu tentei usar oscpcomando como mostrado aqui:http://www.hypexr.org/linux_scp_help.php

Eu fiz desta forma:

-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, recebo um erro.

Por que? o que estou perdendo? Como posso corrigir esse problema?

Tnx

Responder1

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

MobaXterm fornece acesso a 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 de scp:

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

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

Na verdade, é apenas uma versão habilitada para ssh do comando cp padrão; com a seção anterior à que :contém as informações específicas do ssh e as informações posteriores relativas à operação cp.

do utilizador:

usero padrão é seu nome de usuário local atual - ele pode ser omitido se esse for o nome de usuário correto na origem e no destino.

hospedar:

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

caminho de arquivo:

path/filenameo padrão é o diretório inicial do usuário especificado e pode ser omitido se desejado. filename pode ser omitido ao fazer uma cópia recursiva como na sua situação - basta fornecer 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 (o padrão será manter o mesmo nome de arquivo).

Estou usando remoteusere remotePCcomo nome de usuário e nome do host do PC remoto; substitua pelos nomes corretos.

Sintaxe correta no seu exemplo:

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

Utilize o comando man scpouesse sitepara detalhes adicionais (argumentos, outras informações de uso).

Opção GUI

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

Responder2

A menos que esse servidor web tenha uma maneira de se conectar diretamente à sua máquina Windows (na porta 22, o que exigirá a execução de um daemon SSH, bem como as portas sendo encaminhadas), você precisará invocar o SCP do lado do Windows. MobaXTerm é um cliente ssh, não tenho certeza se ele possui SCP integrado (eu pessoalmente não o uso), mas a melhor solução aqui é usar um cliente SCP, seja um cliente de linha de comando ou um cliente GUI.

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

Responder3

Para responder

Por que o comando scp apresenta erro?

, sendo o erro

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

, e o comando usado sendo

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

Eu diria:

a sintaxe C:\Users\....está errada. Neste contexto você tem duas possibilidades para descrever um caminho:

  1. foo/bar/...: significa que fooé um diretório (pasta) visível no seu caminho, pode ser o seu caminho atual ( pwd) ou na variável env do caminho ( echo $PATH).

  2. /foo/bar/...significa que fooé um diretório (pasta) presente na raiz do seu sistema de arquivos.

Como você usou a primeira opção (porque não existe "/" antes de "C:"), o shell procura C:no caminho, mas não consegue encontrá-lo. Conseqüentemente, ele tenta corresponder a outra sintaxe: [user@]host1:/path/..../filename. Nesta situação, o ssh reclama porque não consegue encontrar um endereço IP C:(porque pensa que esse C:é o nome do host). Encontrar um endereço IP correspondente a um nome de host é chamado de "resolução de nome de host"; aqui esta resolução falha, então você entende o erro.

Responder4

No Windows, o seguinte comando funcionou para mim: - scp -r "Reqd.Folder name in quotes" username@remote_server:File path at server

scp -r "ABC" shivam@servidor_remoto:/media/External/shivam.

Vá para a pasta antes de executá-lo onde a pasta necessária está presente

informação relacionada