scp E-Mail
Geschrieben von: tpm   

Unter Linux gibt es viele Möglichkeiten, Daten von einem Ort an den anderen zu kopieren. Lokal eignet sich dazu sicher der altbewährte cp-Befehl. Wenn man aber nun Daten zwischen zwei Computern austauschen möchte, dann besteht die Gefahr, dass jemand über das Netzwerk die Daten mitlesen (sniffen) und evtl. auswerten kann. Anders sieht dies aus, wenn die Übertragung verschlüsselt erfolgt.

 

Ein seit Jahren als relativ sicher geltendes Protokoll ist das SSH-Protokoll (Secure Shell). Darauf aufbauend wurde auch scp (Secure Copy) entwickelt. Bevor hier irgendwelche relevaten Daten (Anmelde- oder Nutzdaten) zwischen zwei Computern ausgetauscht werden, wird erstmal ein sicherer Tunnel hergestellt. Einmal aufgebaut, kann ein potentieller Angreifer nichts mehr mit eventuell mitgeschnittenen Daten anfangen.

Eine Voraussetzung damit scp überhaupt funktioniert, ist das SSH-Protokoll installiert zu haben. Des Weiteren wird ein SSH-Client und SSH-Server gefordert. Der Client muss auf dem lokalen, der Server auf dem entfernten System (Zielsystem) laufen. Und letztendlich muss auf dem Zielsystem auch der entsprechende Benutzer und dessen Passwort bekannt sein. Möchte man nun Daten vom lokalen auf das entfernte System kopieren, verwendet man folgende Syntax:

 

example
scp lokale_datei benutzer@entferntes_system:/pfad/

 

Als Beispiel der Ablauf eines Kopiervorgangs einer Datei auf einen entfernten Rechner:

 

Voraussetzungen für einen Kopiervorgang mit scp

 

input
scp 100MB user2@ap200:/home/user2/

 

Die zu kopierende Datei hat den Namen 100MB. Der Benutzer auf dem entfernten System lautet hier user2 und muss auf dem Zielsystem vorhanden sein! Als Adresse des Zielsystems wurde hier der Hostname verwendet. Ein FQDN oder NetBios Name sind ebenfalls möglich, sofern die entsprechenden Dienste, bzw. Einträge zur Verfügung stehen. Die einfachste Möglichkeit wäre ein Eintrag in der Datei /etc/hosts. Alternativ kann auch schlicht die IP-Adresse verwendet werden.

Schließlich noch das Zielverzeichnis, wobei dort natürlich auch darauf zu achten ist, dass der verwendete Benutzer die entsprechenden Rechte besitzt.

 

output
The authenticity of host 'ap200 (192.168.1.200)' can't be established.
RSA key fingerprint is 33:61:e7:b4:69:1a:90:91:2f:b5:74:91:0d:09:f0.
Are your sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.200' (RSA) to the list of known hosts.
user2@ap200's password: *******
100MB 100% 98MB 24.4MB/s 00:04

 

Hat man vorher noch keine SSH-Verbindung aufgebaut, wird erstmal auf den RSA Key Fingerprint hingewiesen. Der RSA Key Fingerprint ist ein vom Server lokal generierter Schlüssel, der zur Authentifizierung dient. Um sicher zu gehen, dass am anderen Ende auch wirklich der zu erwartende Server antwortet, kann man sich vom dortigen Administrator den Key übermitteln lassen. Die Keys können mit dem Programms ssh-keygen ausgelesen, generiert und verwaltet werden.

Abschließend wird noch nach dem Passwort des Benutzers auf dem entfernten Computer gefragt. Hat man diesen korrekt eingegeben, startet die Datenübertragung mit Fortschrittsanzeige.

Des Weiteren ist es auch möglich sich Daten von einem entfernten Rechner zu holen. Die Syntax dafür ist ähnlich der obigen Syntax.

 

example
scp benutzer@entferntes_system:/pfad/entfernte_datei lokale_datei

 

Damit wird , nach Abfrage des Passworts, die entfernte Datei unter dem Namen lokale_datei ins aktuelle Verzeichnis kopiert .

 

Weitere Informationen:

  • Alternativen zum sicheren Datentransfer sind cryptcat oder sftp.
Zuletzt aktualisiert am Samstag, den 16. Januar 2010 um 16:14 Uhr