it-swarm.com.de

Übertragen von Dateien über SSH

Ich stelle eine SSH-Verbindung zu einem Remoteserver in der Befehlszeile her und versuche, mit dem Befehl scp ein Verzeichnis auf meinen lokalen Computer zu kopieren. Der Remote-Server gibt jedoch die folgende Nachricht "usage" zurück:

[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[[email protected]]Host1:]file1 [...] [[[email protected]]Host2:]file2
[Stewart:console/ebooks/discostat] jmm%

Ich möchte Dateien in beide Richtungen übertragen können. Nach allem, was ich gelesen habe, dachte ich, dass der obige Befehl zum Herunterladen und scp -p [localpath] [remotepath] zum Hochladen funktionieren würde?

450
Josh Maurice

Sie müssen irgendwo etwas scp. Sie haben scp ./styles/, sagen also, dass Sie eine sichere Kopie ./styles/ haben, aber nicht, wohin Sie sie kopieren sollen.

Im Allgemeinen, wenn Sie herunterladen möchten, wird es gehen:

# download: remote -> local
scp [email protected]_Host:remote_file local_file 

wobei local_file tatsächlich ein Verzeichnis sein könnte, in das die Datei kopiert werden soll. Zum Hochladen ist es umgekehrt:

# upload: local -> remote
scp local_file [email protected]_Host:remote_file

Wenn Sie ein gesamtes Verzeichnis kopieren möchten, benötigen Sie -r. Stellen Sie sich scp wie cp vor, außer dass Sie eine Datei mit [email protected]_Host:file sowie nur lokale Dateien angeben können.

Bearbeiten: Wie in einem Kommentar erwähnt, kann der Benutzer bei der Angabe einer entfernten Datei weggelassen werden, wenn die Benutzernamen auf dem lokalen und dem entfernten Host identisch sind.

715
lemnisca

Verwenden Sie beim Kopieren auf/von Ihrem Desktop-Computer WinSCP oder unter Linux Nautilus SCP über die Option Connect To Server.

scp kann nur Dateien auf einen Computer kopieren, auf dem sshd ausgeführt wird. Daher müssen Sie die Client-Software auf dem Remotecomputer von dem Computer ausführen, auf dem scp ausgeführt wird.

Wenn Sie über die Befehlszeile kopieren, verwenden Sie:

# copy from local machine to remote machine
scp localfile [email protected]:/path/to/whereyouwant/thefile

oder

# copy from remote machine to local machine
scp [email protected]:/path/to/remotefile localfile
159
JeeBee

Sie müssen sowohl Quelle als auch Ziel angeben. Wenn Sie Verzeichnisse kopieren möchten, sollten Sie die Option -r auswählen.

So kopieren Sie/home/user/whatever rekursiv vom Remote-Server in Ihr aktuelles Verzeichnis:

scp -pr [email protected]:whatever .
22
Ken

Nein, Sie müssen noch scp [from] [to] auf jede Art und Weise kopieren

Der Unterschied ist, Sie müssen scp -p server:serverpath localpath

17
Gareth