¿Cómo puedo copiar correctamente una carpeta desde mi computadora local a mi servidor usando SSH? ¿Por qué el comando scp genera un error?

¿Cómo puedo copiar correctamente una carpeta desde mi computadora local a mi servidor usando SSH? ¿Por qué el comando scp genera un error?

He iniciado sesión en mi servidor web a través deSSHusando una herramienta llamadaMobaXterm(Es algo así como Putty pero con funciones avanzadas, esto no es tan importante...)

Mi problema es que quiero enviar un directorio desde mi computadora local (Windows) a un directorio específico de este servidor (Linux).

Así que intenté usar elscpcomando como se muestra aquí:http://www.hypexr.org/linux_scp_help.php

Lo he hecho de esta manera:

-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

Pero como puedes ver me sale un error.

¿Por qué? ¿Qué me estoy perdiendo? ¿Cómo puedo solucionar este problema?

tnx

Respuesta1

Presumiblemente está ejecutando esto en un shell MobaXterm local (es decir, local en la máquina con Windows). Si ese es el caso, debe actualizar la sintaxis del comando scp para adaptarse a ese entorno, aunque la sintaxis es incorrecta de todos modos.

MobaXterm proporciona acceso a unidades locales en su shell a través del punto de montaje /drives/X, siendo X la letra de unidad de Windows.

Además, la sintaxis general (simplificada) de scp, independientemente del entorno, es:

uso de scp:

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

La primera secuencia ( [[user@]host1:]/path[/filename]) es la sección 'DESDE'; el origen del archivo o archivos que se van a copiar. El segundo es el 'TO'; el destino. Los corchetes indican argumentos opcionales.

En realidad, es solo una versión habilitada para ssh del comando cp estándar; con la sección anterior a la que :contiene la información específica de ssh y la información posterior relacionada con la operación cp.

usuario:

userEl valor predeterminado es su nombre de usuario local actual; puede omitirse si ese es el nombre de usuario correcto tanto en el origen como en el destino.

anfitrión:

hostpor defecto es la computadora local (localhost); entonces, si está copiando hacia/desde la máquina local Y el nombre de usuario en localhost que se utilizará es el usuario actual, puede omitir ese argumento para los archivos locales.

ruta de archivo:

path/filenameEl valor predeterminado es el directorio de inicio de los usuarios especificados y se puede omitir si así lo desea. El nombre del archivo se puede omitir al realizar una copia recursiva como en su situación; en ese caso, simplemente proporcione la ruta. Generalmente, la ruta completa y el nombre del archivo se especifican en la sección DESDE, y solo la ruta en la sección HACIA (de forma predeterminada, se mantendrá el mismo nombre de archivo).

Estoy usando remoteusery remotePCcomo nombre de usuario y nombre de host de la PC remota; reemplácelo con los nombres correctos.

Sintaxis correcta en su ejemplo:

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

Utilice el comando man scpoeste sitiopara obtener detalles adicionales (argumentos, otra información de uso).

Opción GUI

Alternativamente, MobaXterm proporciona un explorador de archivos gráfico (construido en sftp o scp según las opciones de configuración) que proporciona transferencias de archivos bidireccionales de arrastrar y soltar cuando se ha conectado al host remoto a través de ssh.Detalles aquí.

Respuesta2

A menos que ese servidor web tenga una forma de conectarse directamente a su máquina Windows (en el puerto 22, que requerirá que se ejecute un demonio SSH y que se reenvíen los puertos), deberá invocar SCP desde el lado de Windows. MobaXTerm es un cliente ssh, no estoy seguro si tiene SCP integrado (yo personalmente no lo uso), pero la mejor solución aquí es usar un cliente SCP, ya sea un cliente de línea de comandos o un cliente GUI.

Un cliente bastante popular para Windows esWinSCP, es mi cliente de acceso cuando no tengo más remedio que usar Windows.

Respuesta3

Contestar

¿Por qué el comando scp genera un error?

, siendo el error

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

, y el comando utilizado es

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

Yo diría:

la sintaxis C:\Users\....es incorrecta. En este contexto tienes dos posibilidades para describir un camino:

  1. foo/bar/...: significa que fooes un directorio (carpeta) visible desde su ruta, puede ser su ruta actual ( pwd) o en la variable env de ruta ( echo $PATH).

  2. /foo/bar/...significa que fooes un directorio (carpeta) presente en la raíz de su sistema de archivos.

Como usó la primera opción (porque no hay "/" antes de "C:"), el shell busca C:en la ruta, pero no puede encontrarla. En consecuencia, intenta coincidir con otra sintaxis: [user@]host1:/path/..../filename. En esta situación, ssh se queja porque no puede encontrar una dirección IP C:(porque cree que ese C:es el nombre del host). Encontrar una dirección IP correspondiente a un nombre de host se llama "resolución de nombre de host"; aquí esta resolución falla, entonces entiendes el error.

Respuesta4

En Windows, el siguiente comando funcionó para mí: - scp -r "Reqd.Nombre de carpeta entre comillas" nombre de usuario@servidor_remoto: Ruta del archivo en el servidor

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

Vaya a la carpeta antes de ejecutarla donde esté presente la carpeta requerida

información relacionada