Was ist scp? Dateien sicher übertragen
Autor: Redaktion Domeny.ForSale Veröffentlicht
Kurz erklärt: In der Informatik bezeichnet SCP (Secure Copy Protocol) ein Verfahren zum sicheren Kopieren von Dateien zwischen Computern. scp ist der Befehl für solche Übertragungen über SSH, also eine verschlüsselte Verbindung zu einem entfernten System. Damit kannst du eine Datei auf einen Server hochladen oder eine Sicherungskopie auf deinen eigenen Computer herunterladen. Aktuelle Versionen von scp aus dem OpenSSH-Paket verwenden standardmäßig das SFTP-Protokoll statt des älteren SCP-Protokolls. Das Kürzel kommt auch im Namen des fiktiven Universums SCP Foundation vor — diese Bedeutung hat nichts mit der Datenübertragung zu tun.
Wozu dient scp und wie funktioniert es?
Der Befehl scp kopiert Daten von einer angegebenen Quelle an ein Ziel. Typische Anwendungen sind das Hochladen eines Website-Archivs auf einen Server, das Herunterladen von Logs zur Analyse oder das Kopieren einer Konfigurationsdatei. Du führst den Befehl im Terminal aus und gibst dabei die Pfade sowie die Zugangsdaten zum entfernten Computer an.
SSH verschlüsselt die Verbindung und ermöglicht die Authentifizierung, also die Überprüfung der Identität der Verbindungspartner. Die Anmeldung erfolgt meist mit einem Passwort oder einem SSH-Schlüssel. Ein Schlüsselpaar besteht aus zwei zusammengehörigen Teilen: Der öffentliche Schlüssel wird auf dem Server hinterlegt, der private bleibt auf deinem Computer und muss vor Offenlegung geschützt werden.
Eine verschlüsselte Übertragung bedeutet jedoch nicht, dass die Datei auch nach dem Speichern auf der Festplatte verschlüsselt ist. scp ist außerdem kein vollständiges Backup-System: Der Befehl allein bietet weder einen Versionsverlauf noch eine Rotation der Archive oder Tests zur Wiederherstellbarkeit der Daten.
Was musst du vor dem Kopieren vorbereiten?
Auf dem Computer, von dem aus du die Übertragung startest, benötigst du den Client scp. Er ist in vielen Installationen von Linux und macOS verfügbar; unter Windows kannst du den OpenSSH-Client verwenden. Ob OpenSSH vorhanden ist, prüfst du mit ssh -V. Ob auch scp verfügbar ist, prüfst du, indem du scp ohne Argumente ausführst. Das Programm sollte dann einen Hinweis zur Syntax anzeigen.
Auf dem Server muss SSH laufen. Für den Standardmodus aktueller OpenSSH-Versionen muss außerdem SFTP unterstützt werden. Du benötigst die Serveradresse, den Benutzernamen, eine Anmeldemöglichkeit und Berechtigungen für das entsprechende Verzeichnis. Ein Konto, das ausschließlich FTP unterstützt, reicht nicht aus.
Vor der ersten Übertragung kannst du die Anmeldung testen:
Die Adresse 192.0.2.10 ist ein Beispiel — ersetze sie durch die Adresse deines Servers. Bei der ersten Verbindung kann der Client dich auffordern, den Fingerabdruck des Hostschlüssels zu bestätigen. Dieser Fingerabdruck dient zur Identifizierung des Serverschlüssels. Vergleiche ihn mit den Angaben des Administrators oder aus einem vertrauenswürdigen Kundenportal des Anbieters, statt ihn ungeprüft zu bestätigen.
scp verwenden: drei praktische Beispiele
Das Grundschema des Befehls lautet:
scp [optionen] quelle ziel
Ein entfernter Speicherort wird meist als benutzer@server:pfad angegeben. Der Doppelpunkt trennt die Serveradresse vom Datei- oder Verzeichnispfad.
Eine Datei auf den Server hochladen: Angenommen, im aktuellen Verzeichnis liegt das Archiv website.tar.gz, das du im Home-Verzeichnis der Benutzerin Anna ablegen möchtest:
scp strona.tar.gz [email protected]:/home/anna/
Eine Datei vom Server herunterladen: Vertausche die Reihenfolge von Quelle und Ziel. Der Punkt am Ende steht für das aktuelle Verzeichnis auf dem Computer, auf dem du den Befehl ausführst:
scp [email protected]:/home/anna/backup.zip .
Ein ganzes Verzeichnis hochladen: Ergänze die Option -r. Sie aktiviert das rekursive Kopieren, bei dem der Inhalt des Verzeichnisses einschließlich seiner Unterverzeichnisse übertragen wird:
scp -r ./fotos [email protected]:/home/anna/
Wenn SSH auf einem anderen Port als dem Standardport 22 läuft, gib ihn mit dem großgeschriebenen -P an, zum Beispiel scp -P 2222 datei.txt [email protected]:/home/anna/. Das kleingeschriebene -p hat eine andere Bedeutung: Es erhält die Zugriffs- und Änderungszeiten sowie die Berechtigungsbits der Datei. Setze lokale Pfade mit Leerzeichen in Anführungszeichen, zum Beispiel "jahresbericht.pdf".
Wann solltest du scp, SFTP oder rsync wählen?
Die Bezeichnungen SCP und SFTP werden manchmal verwechselt, weil beide Verfahren SSH nutzen. Ursprünglich handelte es sich um unterschiedliche Dateiübertragungsprotokolle. Seit OpenSSH 9.0 überträgt der Befehl scp Dateien standardmäßig über SFTP, behält aber die vertraute Syntax bei.
Wähle das Werkzeug passend zur Aufgabe:
scp— zum einmaligen Hoch- oder Herunterladen einer Datei, deren Pfad du kennst.- SFTP-Client — wenn du entfernte Verzeichnisse durchsuchen, Dateien auswählen und interaktiv verwalten möchtest, auch mit einem grafischen Programm.
rsyncüber SSH — zum wiederholten Kopieren von Verzeichnissen und zum Übertragen von Änderungen, ohne jedes Mal sämtliche Daten erneut zu kopieren. Dafür mussrsyncin der Regel auf beiden Seiten verfügbar sein.
Die Option -O erzwingt in OpenSSH das alte SCP-Protokoll. Verwende sie zur Lösung eines konkreten Kompatibilitätsproblems, nicht als Standardeinstellung. Welche Optionen deine Version unterstützt und wie sie sich verhält, erfährst du in der lokalen Dokumentation über man scp oder in der offiziellen OpenSSH-Dokumentation.
Häufige Fehler und eine sichere erste Übertragung
Die Meldung Permission denied kann auf einen Anmeldefehler oder fehlende Berechtigungen für eine Datei oder ein Verzeichnis hinweisen. Wenn die Anmeldung über ssh funktioniert, prüfe, ob der entfernte Benutzer am Zielort schreiben darf. No such file or directory deutet meist auf einen falschen Pfad hin. Connection refused kann bedeuten, dass der Port falsch ist oder der SSH-Dienst nicht läuft.
scp kann eine vorhandene Datei ohne Rückfrage überschreiben. Prüfe vor dem Übertragen die Reihenfolge der Argumente und den Inhalt des Zielverzeichnisses. Beachte außerdem, dass sich ein relativer Pfad auf dem entfernten System normalerweise auf das Home-Verzeichnis des Benutzers bezieht, nicht auf das Verzeichnis, das auf deinem Computer geöffnet ist.
Führe den ersten Test mit einer kleinen, unwichtigen Datei durch und übertrage sie in ein separates Verzeichnis. Prüfe anschließend, ob sie dort vorhanden ist und ihr Inhalt stimmt. Erst danach solltest du dasselbe Vorgehen für die eigentlichen Daten verwenden.
Siehe auch: Was ist AGI?
