Wie kann ich einen Ordner per SSH korrekt von meinem lokalen Computer auf meinen Server kopieren? Warum tritt beim scp-Befehl ein Fehler auf?

Wie kann ich einen Ordner per SSH korrekt von meinem lokalen Computer auf meinen Server kopieren? Warum tritt beim scp-Befehl ein Fehler auf?

Ich bin auf meinem Webserver angemeldet überSSHmithilfe eines Tools namensMobaXterm(es ist so etwas wie Putty, aber mit erweiterten Funktionen, das ist nicht so wichtig …)

Mein Problem ist, dass ich ein Verzeichnis von meinem lokalen Computer (Windows) an ein bestimmtes Verzeichnis dieses Servers (Linux) senden möchte.

Ich habe also versucht, diescpBefehl wie hier gezeigt:http://www.hypexr.org/linux_scp_help.php

Ich habe es folgendermaßen gemacht:

-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

Aber wie Sie sehen, erhalte ich eine Fehlermeldung.

Warum? Was übersehe ich? Wie kann ich dieses Problem beheben?

Danke

Antwort1

Vermutlich führen Sie dies in einer lokalen MobaXterm-Shell aus (d. h. lokal auf dem Windows-Computer). Wenn dies der Fall ist, müssen Sie die SCP-Befehlssyntax aktualisieren, um diese Umgebung zu berücksichtigen, obwohl die Syntax trotzdem falsch ist.

MobaXterm ermöglicht in seiner Shell den Zugriff auf lokale Laufwerke über den Einhängepunkt /drives/X, wobei X der Windows-Laufwerksbuchstabe ist.

Darüber hinaus lautet die (vereinfachte) allgemeine Syntax von scp, unabhängig von der Umgebung:

scp-Nutzung:

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

Die erste Sequenz ( [[user@]host1:]/path[/filename]) ist der Abschnitt „FROM“; die Quelle der zu kopierenden Datei(en). Die zweite ist „TO“; das Ziel. Die Klammern zeigen optionale Argumente an.

Es handelt sich eigentlich nur um eine SSH-fähige Version des Standardbefehls „cp“, wobei der Abschnitt davor :die SSH-spezifischen Informationen enthält und die Informationen danach sich auf den „cp“-Vorgang beziehen.

Benutzer:

userwird standardmäßig auf Ihren aktuellen, lokalen Benutzernamen gesetzt. Er kann weggelassen werden, wenn dies sowohl in der Quelle als auch im Ziel der richtige Benutzername ist.

Gastgeber:

hostist standardmäßig der lokale Computer (localhost); wenn Sie also vom/zum lokalen Computer kopieren UND der zu verwendende Benutzername auf dem lokalen Host der aktuelle Benutzer ist, können Sie dieses Argument für die lokale(n) Datei(en) weglassen.

Dateipfad:

path/filenamestandardmäßig das angegebene Benutzer-Home-Verzeichnis und kann weggelassen werden, wenn das gewünscht ist. Der Dateiname kann weggelassen werden, wenn wie in Ihrer Situation eine rekursive Kopie durchgeführt wird – geben Sie in diesem Fall einfach den Pfad an. Im Allgemeinen werden der vollständige Pfad und Dateiname im Abschnitt „VON“ und nur der Pfad im Abschnitt „TO“ angegeben (standardmäßig wird der gleiche Dateiname beibehalten).

Ich verwende remoteuserund remotePCals Benutzernamen und Hostnamen des Remote-PCs. Ersetzen Sie diese durch die korrekten Namen.

Richtige Syntax in Ihrem Beispiel:

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

Verwenden Sie den Befehl man scpoderDiese Seitefür weitere Details (Argumente, andere Verwendungsinformationen).

GUI-Option

Alternativ bietet MobaXterm einen grafischen Dateibrowser (basierend auf SFTP oder SCP, je nach Konfigurationsoptionen), der bidirektionale Dateiübertragungen per Drag & Drop ermöglicht, wenn Sie über SSH mit dem Remote-Host verbunden sind.Details hier.

Antwort2

Sofern dieser Webserver keine Möglichkeit hat, eine direkte Verbindung zu Ihrem Windows-Rechner herzustellen (über Port 22, wofür ein laufender SSH-Daemon und weitergeleitete Ports erforderlich sind), müssen Sie SCP von der Windows-Seite aus aufrufen. MobaXTerm ist ein SSH-Client. Ich bin nicht sicher, ob SCP integriert ist (ich verwende es nicht persönlich), aber die beste Lösung ist hier die Verwendung eines SCP-Clients, sei es ein Befehlszeilen- oder ein GUI-Client.

Ein recht beliebter Client für Windows istWinSCP, es ist mein bevorzugter Client, wenn ich keine andere Wahl habe, als Windows zu verwenden.

Antwort3

Antworten

Warum tritt beim SCP-Befehl ein Fehler auf?

, der Fehler ist

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

und der verwendete Befehl ist

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

Ich würde sagen:

die Syntax C:\Users\....ist falsch. In diesem Zusammenhang gibt es zwei Möglichkeiten, einen Pfad zu beschreiben:

  1. foo/bar/...: bedeutet, dass dies fooein Verzeichnis (Ordner) ist, das von Ihrem Pfad aus sichtbar ist. Dies kann Ihr aktueller Pfad ( pwd) oder die Umgebungsvariable des Pfads ( echo $PATH) sein.

  2. /foo/bar/...bedeutet, dass es foosich um ein Verzeichnis (Ordner) im Stammverzeichnis Ihres Dateisystems handelt.

Da Sie die erste Option verwendet haben (weil vor „C:“ kein „/“ steht), sucht die Shell C:im Pfad nach , kann es aber nicht finden. Daher versucht sie, eine andere Syntax zu verwenden: [user@]host1:/path/..../filename. In dieser Situation beschwert sich ssh, weil es keine IP-Adresse für finden kann C:(weil es denkt, dass es C:der Hostname ist). Das Suchen einer IP-Adresse, die einem Hostnamen entspricht, nennt man „Hostnamenauflösung"; hier schlägt diese Lösung fehl, Sie verstehen also den Fehler.

Antwort4

Unter Windows hat bei mir der folgende Befehl funktioniert: - scp -r "Reqd.Ordnername in Anführungszeichen" Benutzername@Remote_Server:Dateipfad auf dem Server

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

Wechseln Sie vor der Ausführung in den Ordner, in dem sich der gewünschte Ordner befindet

verwandte Informationen