scp (Shell-Befehl): Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
$ <b>scp remote1:file1 remote2:</b> | $ <b>scp remote1:file1 remote2:</b> | ||
Kopieren der Datei "datei1" vom lokalen Rechner als Benutzer "root" ins Verzeichnis "/tmp" auf Rechner "remote2" (via Port 6666). | |||
$ <b>scp -P 6666 datei1 root@remote2:/tmp</b> | |||
Kopieren der Datei "/tmp/file.txt" auf dem entfernten Rechner "altdorf" ins aktuelle Verzeichnis. | Kopieren der Datei "/tmp/file.txt" auf dem entfernten Rechner "altdorf" ins aktuelle Verzeichnis. | ||
Zeile 28: | Zeile 32: | ||
$ <b>scp xyz@remotehost:/etc/hosts .</b> | $ <b>scp xyz@remotehost:/etc/hosts .</b> | ||
Kopieren der Dateien "/etc/hosts" und "/tmp/test" als Benutzer "xyz" auf dem entfernten Rechner "remotehost" ins aktuelle Verzeichnis auf dem lokalen Rechner. | |||
$ <b>scp xyz@remotehost:"/etc/hosts /tmp/test" .</b> | |||
Kopieren der Datei "/etc/hosts" auf dem lokalen Rechner "localhost" als Benutzer "xyz" auf den Rechner "remotehost" ins Verzeichnis "/tmp". | Kopieren der Datei "/etc/hosts" auf dem lokalen Rechner "localhost" als Benutzer "xyz" auf den Rechner "remotehost" ins Verzeichnis "/tmp". | ||
Zeile 40: | Zeile 48: | ||
$ <b>scp xyz@remotehost1:/tmp/test abc@remotehost2:/tmp</b> | $ <b>scp xyz@remotehost1:/tmp/test abc@remotehost2:/tmp</b> | ||
== FAQ == | |||
=== scp: ambiguous target === | |||
Die Fehlermeldung "scp: ambiguous target" erscheint beim Kopieren über scp, wenn der Dateipfad ein Leerzeichen enthält. | |||
$ <b>scp /quelle root@192.168.1.1:/Pfad mit Leerzeichen/</b> | |||
Normalerweise würde es funktionieren, wenn man diesen Pfad in Anführungszeichen setzen würde. | |||
$ <b>scp /quelle root@192.168.1.1:"/Pfad mit Leerzeichen/"</b> | |||
Die Fehlermeldung erscheint aber trotzdem! | |||
Auch ein Backslash vor dem Leerzeichen hilft nichts. | |||
$ <b>scp /quelle root@192.168.1.1:/Pfad\ mit\ Leerzeichen/</b> | |||
In diesem Fall müssen erstens die Anführungszeichen gesetzt und zusätzlich die Leerzeichen noch mit einem doppelten (!) Backslash versehen werden. | |||
$ <b>scp /quelle root@192.168.1.1:"/Pfad\\ mit\\ Leerzeichen/"</b> | |||
== Weblinks == | == Weblinks == | ||
{{ | {{Weblinks}} | ||
}} | {{url_dewikipedia|Secure_Copy|Secure Copy}} | ||
{{Fuss}} | |||
* http://crawlicious.com/wp/2009/06/18/multi-hop-scp-ssh-scp-file-copy/ | |||
* http://tek-tips.com/viewthread.cfm?qid=1555314 | |||
<!-- | |||
server1 -> server3 -> server2 | |||
ssh server3 'ssh server2 "cat > destfile"' < srcfile | |||
z. B. fuerst via adminkuhn.ch zu Detmold | |||
$ ssh root@adminkuhn.ch 'ssh root@90.153.12.200 "cat > /tmp/ncdstart.exe"' < NCDSTART.EXE | |||
Permission denied, please try again. | |||
Permission denied, please try again. | |||
Received disconnect from 90.153.12.200: 2: Too many authentication failures for root | |||
Folgendes FUNKTIONIERTE auf Rechner "fuerst" (host1 -> host2 -> host3): | |||
$ ssh -L 9999:host3:22 root@host2 | |||
Dann in einem zweiten Fenster auf Rechner "fuerst": | |||
$ scp -P 9999 inputfile root@localhost:/tmp/outputfile | |||
--> | |||
{{cat|Datenübertragung}} | {{cat|Datenübertragung}} |
Aktuelle Version vom 12. November 2016, 15:05 Uhr
Der Shell-Befehl scp (secure copy) dient der mit SSH verschlüsselten Übermittlung von Dateien und Verzeichnisen in einem Rechnernetz. Dabei wird für die Anmeldung und Verbindung die Secure Shell / SSH und für die Datenübertragung das Secure Copy Protocol / SCP genutzt. Auf dem entfernten Rechner wird ein SCP-Server aufgerufen; dieser ist normalerweise gleichzeitig auch das Client-Programm. Für die darunterliegende Secure Shell wird ein SSH-Server benötigt.
Normalerweise wird für jede zu kopierende Datei die Eingabe des Passworts verlangt. Wird Public-Key-Authentication verwendet, entfällt dies.
Verwendung
Kopieren der Datei "file" vom Rechner "remote" ins aktuelle Verzeichnis.
$ scp remote:file .
Kopieren der Datei "file1" vom Rechner "remote1" sowie der Datei "file2" vom Rechner "remote2" ins Verzeichnis "/tmp" auf dem lokalen Rechner.
$ scp remote1:file1 remote2:file2 /tmp
Kopieren der Datei "file1" vom Rechner "remote1" auf den Rechner "remote2".
$ scp remote1:file1 remote2:
Kopieren der Datei "datei1" vom lokalen Rechner als Benutzer "root" ins Verzeichnis "/tmp" auf Rechner "remote2" (via Port 6666).
$ scp -P 6666 datei1 root@remote2:/tmp
Kopieren der Datei "/tmp/file.txt" auf dem entfernten Rechner "altdorf" ins aktuelle Verzeichnis.
$ scp sisis@altdorf:/tmp/file.txt .
Rekursives Kopieren des Verzeichnisses "/tmp" (also einschliesslich aller seiner Dateien und Unterverzeichnisse) auf dem entfernten Rechner "altdorf" ins aktuelle Verzeichnis.
$ scp -r sisis@altdorf:/tmp .
Kopieren der Datei "/etc/hosts" als Benutzer "xyz" auf dem entfernten Rechner "remotehost" ins aktuelle Verzeichnis auf dem lokalen Rechner.
$ scp xyz@remotehost:/etc/hosts .
Kopieren der Dateien "/etc/hosts" und "/tmp/test" als Benutzer "xyz" auf dem entfernten Rechner "remotehost" ins aktuelle Verzeichnis auf dem lokalen Rechner.
$ scp xyz@remotehost:"/etc/hosts /tmp/test" .
Kopieren der Datei "/etc/hosts" auf dem lokalen Rechner "localhost" als Benutzer "xyz" auf den Rechner "remotehost" ins Verzeichnis "/tmp".
$ scp /etc/hosts xyz@remotehost:/tmp
Kopieren der Dateien "/etc/hosts" und "/etc/hosts.deny" als Benutzer "xyz" auf dem entfernten Rechner "remotehost" ins aktuelle Verzeichnis auf dem lokalen Rechner.
$ scp xyz@remotehost:/etc/hosts scp xyz@remotehost:/etc/hosts.deny .
Kopieren der Datei "/tmp/test" und als Benutzer "xyz" auf dem entfernten Rechner "remotehost1" ins Verzeichnis "/tmp" als Benutzer "abc" des entfernten Rechners "remotehost2".
$ scp xyz@remotehost1:/tmp/test abc@remotehost2:/tmp
FAQ
scp: ambiguous target
Die Fehlermeldung "scp: ambiguous target" erscheint beim Kopieren über scp, wenn der Dateipfad ein Leerzeichen enthält.
$ scp /quelle root@192.168.1.1:/Pfad mit Leerzeichen/
Normalerweise würde es funktionieren, wenn man diesen Pfad in Anführungszeichen setzen würde.
$ scp /quelle root@192.168.1.1:"/Pfad mit Leerzeichen/"
Die Fehlermeldung erscheint aber trotzdem!
Auch ein Backslash vor dem Leerzeichen hilft nichts.
$ scp /quelle root@192.168.1.1:/Pfad\ mit\ Leerzeichen/
In diesem Fall müssen erstens die Anführungszeichen gesetzt und zusätzlich die Leerzeichen noch mit einem doppelten (!) Backslash versehen werden.
$ scp /quelle root@192.168.1.1:"/Pfad\\ mit\\ Leerzeichen/"
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Secure Copywbm | Enzyklopädischer Artikel |