Kopieren der Remote-Datei in einen angegebenen Pfad auf dem lokalen Desktop mithilfe von scp

10

Ich habe versucht, eine Datei mit SCP vom Remote-Server zu kopieren, aber es wird der folgende Fehler ausgegeben.

bash-3.2$ scp username@server:main.php C:\main.php

ssh: Hostname C: Hostname oder bereitgestellter Servname konnten nicht aufgelöst werden oder waren nicht bekannt

Es wird C: als Hostname angenommen, aber es ist nur der Laufwerksname. Bitte lassen Sie mich explizit angeben, wie ein Escapezeichen, um dieses Problem zu beseitigen.

Wenn ich nicht den Pfad spezifiziere, in dem auf dem lokalen Desktop gespeichert werden soll, funktioniert es einwandfrei.

bash-3.2$ scp username@server:main.php main.php
main.php                                                                   100%   29KB  28.9KB/s   00:01

Schätzen Sie jede Hilfe. Vielen Dank im Voraus,

PS: Verwenden von Windows XP SP2

Naga Kiran
quelle

Antworten:

14

Wenn Sie Cygwin verwenden scp, können Sie versuchen, die Cygwin-Pfade zu verwenden:

scp user@host:main.php /cygdrive/c/main.php

Sie können auch die im PuTTY- Paket enthaltenen Befehle pscpund verwenden. Es handelt sich um native Win32-Programme, die sich nicht über Windows-Pfade beschweren.psftp

Alternativ ist WinSCP ein guter SCP / SFTP-Client (hauptsächlich eine GUI, jedoch auch ein Befehlszeilentool).

user1686
quelle
Es ist eigentlich / cygdrive / c.
Adam Rosenfield
Vielen Dank für die empfohlene GUI. Bitte beachten Sie, dass Sie mit WinSCP den von Ihnen verwendeten Editor ändern können und in Verbindung mit emacsclientw arbeiten.
Giles Roberts
1
@grawity Eigentlich warst du vorher richtig. Es ist /cygdrive/cstandardmäßig, aber viele Cygwin-Benutzer werden mount --change-cygdrive-prefix /so ausgeführt, dass es /cstattdessen ( /dusw.) ist, da es viel einfacher zu tippen ist;)
DavidPostill
2

Verwenden Sie PSCP.exe

Das Problem, das Sie haben, ist, dass Sie von der Shell aus auf Ihr Windows XP-Laufwerk verweisen, was Sie nicht tun können. Sie sind remote an einem Computer angemeldet. Wenn auf Ihrer Windows XP-Box kein SSH-Server ausgeführt wird, können Sie dies nicht tun. In diesem Fall würden Sie Anmelde- und PW-Informationen für den Zielspeicherort verwenden.

Mit pscp.exe (kostenlos) können Sie tun, was Sie wollen.


quelle
0

@grawity ist richtig. In Zukunft können Sie auch laufen

pwd

um herauszufinden, in welchem ​​Verzeichnis Sie sich befinden, damit Sie den richtigen Pfad zu dem gewünschten Verzeichnis gemäß cygwin herausfinden können.

Marquis Wang
quelle
0

Ich hatte das ähnliche Problem und hatte Erfolg mit:

scp Benutzername @ Server: main.php /c/main.php

was nur irgendwie von den anderen erwähnt wird.

Urthona
quelle
3
Ist das nicht genau das, was superuser.com/a/291841/53590 bespricht? Außerdem wurde es von / c / nach / cygdrive / c / bearbeitet, nachdem darauf hingewiesen wurde, dass letzteres die richtige Form ist.
ein CVn
0

Verwandte: Ich musste lokale Variablen im Pfad verwenden und fand die Verwendung cygpathsehr hilfreich.

z.B

scp $MY_FILE [email protected]

werden:

scp `cygpath $MY_FILE ` [email protected] 

ironischerweise nur: echo $MY_FILEallein gab einen Cygwin-Pfad an, wurde aber im Befehl scp verwendet, war es irgendwie nicht und spuckte denselben Fehler aus, ssh: Hostname C: Hostname oder bereitgestellter Servname konnte nicht aufgelöst werden oder war nicht bekannt

Matt S.
quelle