Come posso copiare correttamente una cartella dal mio computer locale al mio server usando SSH? Perché il comando scp ha riscontrato un errore?


0

Ho effettuato l'accesso al mio server Web tramite SSH utilizzando uno strumento chiamato MobaXterm (è qualcosa come Putty ma con funzionalità avanzate, questo non è così importante ...)

Il mio problema è che voglio inviare una directory dal mio computer locale (Windows) a una directory specifica di questo server (Linux).

Quindi ho provato ad usare il comando scp come mostrato qui: http://www.hypexr.org/linux_scp_help.php

Ho fatto in questo modo:

-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

Ma, come puoi vedere, ottengo un errore.

Perché? Cosa mi sto perdendo? Come posso risolvere questo problema?

tnx


1
SSH(e quindi anche scp) interpreta i due punti come un separatore tra host e percorso sull'host. Quindi devi fuggire dal colon. Su Linux normalmente lo faresti con il prefisso con una barra rovesciata:, \:ma non so come dovrebbe funzionare su Windows. Cordiali saluti: né l'origine né la destinazione contengono un nome host remoto, questo sembra qualcos'altro che è necessario correggere anche.
Jaap Eldering,

1
Sembra che invochi scpsul server. Dovresti eseguire uno scpstrumento equivalente sul tuo computer locale a meno che Windows non sia anche un server SSH (ma anche in questo caso l'avvio della connessione da Windows sembra più naturale). Vi consiglio di indagare su MobaXterm "riquadro di trasferimento file incorporato" menzionato qui .
Kamil Maciorowski,

Risposte:


2

Presumibilmente lo stai eseguendo in una shell MobaXterm locale (cioè locale nella macchina Windows). In tal caso, è necessario aggiornare la sintassi del comando scp per adattarsi a quell'ambiente, sebbene la sintassi non sia corretta a prescindere.

MobaXterm fornisce l'accesso alle unità locali nella sua shell tramite il mountpoint /drives/X, con X come lettera dell'unità Windows.

Inoltre, la sintassi generale (semplificata) di scp, indipendentemente dall'ambiente è:

utilizzo scp:

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

La prima sequenza ( [[user@]host1:]/path[/filename]) è la sezione 'DA'; l'origine del file o dei file da copiare. Il secondo è il 'TO'; la destinazione. Le parentesi indicano argomenti opzionali.

È davvero solo una versione abilitata per ssh del comando cp standard; con la sezione prima del :contenimento delle informazioni specifiche ssh e le informazioni successive relative all'operazione cp.

utente:

user il tuo nome utente locale attuale è predefinito - può essere escluso se si tratta del nome utente corretto sia nella fonte che nella destinazione.

ospite:

hostil valore predefinito è il computer locale (localhost); quindi se stai copiando da / verso la macchina locale E il nome utente su localhost da usare è l'utente corrente, puoi omettere quell'argomento per i file locali.

percorso del file:

path/filenameil valore predefinito è la home directory degli utenti specificati e può essere omesso se lo si desidera. il nome del file può essere escluso quando si esegue una copia ricorsiva come nella propria situazione - fornire solo il percorso in quel caso. Generalmente il percorso completo e il nome file sono specificati nella sezione DA, e solo il percorso nella sezione TO (per impostazione predefinita è mantenere lo stesso nome file).

Sto usando remoteusere remotePCcome nome utente e nome host del PC remoto; sostituire con i nomi corretti.

Sintassi corretta nel tuo esempio:

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

Utilizzare il comando man scpo questo sito per ulteriori dettagli (argomenti, altre informazioni sull'utilizzo).

Opzione GUI

In alternativa, MobaXterm fornisce un browser di file grafico (basato su sftp o scp in base alle opzioni di configurazione) che fornisce il trascinamento dei trasferimenti di file bidirezionali quando si è connessi all'host remoto tramite ssh. Dettagli qui .


1

A meno che quel server web non abbia un modo per connettersi direttamente al tuo computer Windows (sulla porta 22 che richiederà un demone SSH in esecuzione e le porte inoltrate), dovrai invocare SCP dal lato Windows. MobaXTerm è un client SSH, non sono sicuro che abbia SCP integrato (non lo uso personalmente), ma la soluzione migliore qui è utilizzare un client SCP, sia esso un client da riga di comando o un client GUI.

Un client piuttosto popolare per Windows è WinSCP , è il mio client goto quando non ho altra scelta che usare Windows.


0

In Windows il seguente comando ha funzionato per me: - scp -r "Reqd.Folder name tra virgolette" username @ remote_server: percorso del file sul server

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

Passare alla cartella prima di eseguirla dove è presente la cartella richiesta


0

Rispondere

Perché il comando scp ha riscontrato un errore?

, l'errore è

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

e il comando usato essere

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

Direi:

la sintassi C:\Users\....è sbagliata. In questo contesto hai due possibilità per descrivere un percorso:

  1. foo/bar/...: significa che fooè una directory (cartella) visibile dal tuo percorso, può essere tu il percorso corrente ( pwd) o nella variabile env del percorso ( echo $PATH).

  2. /foo/bar/...significa che fooè una directory (cartella) presente nella radice del file system.

Come hai usato la prima opzione (perché non c'è "/" prima di "C:"), la shell cerca C:nel percorso, ma non riesce a trovarla. Di conseguenza, si cerca di abbinare un'altra sintassi: [user@]host1:/path/..../filename. In questa situazione ssh si lamenta perché non riesce a trovare un indirizzo IP per C:(perché pensa che C:sia il nome host). Trovare un indirizzo IP corrispondente a un nome host è chiamato " risoluzione del nome host "; qui questa risoluzione fallisce, quindi capisci l'errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.