Sicher kopieren mit scp und sftp

Ein Kommentar Autor: Jürgen (jdo)

Ich hatte in der letzten zeit einige Male über Datensicherungen geschrieben. Zum Beispiel ein Script soll sich automatisch starten, wenn eine USB-Festplatte eingesteckt wird oder wie ich es im Netzwerk eines Freundes gelöst habe. In den meisten Fällen verwende ich dazu die entsprechenden Hausmittel. Dazu gehören tar, rsync, find und mtime.

Was viele vielleicht kennen, aber irgendwie oft vergessen wird ist scp. Dieses nette kleine Tool verwendet ssh für eine verschlüsselte Übertragung. Das gilt sowohl für Daten als auch das Passwort. Im selben Netz kann also keiner mitschnüffeln, wenn ich scp einsetze.

In manchen Fällen kann es vorkommen, dass Du einfach eine oder wenige Dateien auf einen Server kopieren möchtest. FTP und rcp sind unsicher. Nun könnte man argumentieren: warum dann nicht sftp? Geht natürlich genauso und sftp könnte sogar ein bisschen mehr, wie zum Beispiel Verzeichnisse anlegen. Allerdings ist bei einem reinen Kopiervorgang scp schneller. Warum das so ist, findest Du bei Wikipedia – anderer Algorithmus bla bla – Hauptsache schneller ist für mich wichtig 🙂

Die Syntax des Kommandozeilen-Programms ist recht einfach: scp zu-kopierende-datei benutzername@ssh-server:/pfad/zu/ziel/verzeichnis/

Nautilus zu ssh verbinden

Mit Nautilus verbinden

Was man hier schon sieht ist, dass Du die Struktur des Ziel-Servers kennen solltest. Wer lieber mit einer GUI arbeitet, kann zum Beispiel Filezilla nehmen oder Du kannst Dich auch mit Natilus direkt zu einem SSH-Server verbinden. Diese verwenden zwar sftp, aber man kann nicht alles haben.

scp und sftp verlangen in der Regel ein Passwort, was auch gut so ist. Man liest immer wieder in Foren, dass Leute Kennwörter über ein Script übergeben möchten. Das ist keine gute Idee und wer den Zugang automatisieren möchte, sollte dazu lieber ein Schlüsselpaar verwenden. Das ist nicht kompliziert und schnell erledigt. Ich setze mal voraus, dass sowohl die Quelle als auch das Ziel OpenSSH einsetzen. Im Zweifel lässt sich das allerdings auch mittels ssh -V herausfinden.

Auf dem lokalen Rechner erstellst Du nun mittels ssh-keygen ein Schlüsselpaar. Die Passphrase lässt Du beim Erstellen leer. Der Nutzer auf dem lokalen Rechner ist juergen und auf dem Server bitblokes.

scp ohne Passwort

scp ohne Passwort

Nun kopierst Du die Zeile des lokalen Rechners aus der Datei id_rsa.pub in die Datei authorized_keys auf dem Server unter bitblokes. Die Dateien befinden sich per Standard im Unterverzeichnis .ssh. Nun kann ich vom lokalen Rechner mittels ssh bitblokes@ssh-server ohne Passwort-Eingabe auf meinen Server zugreifen.

Achtung! Stelle sicher, dass der kopierte Schlüssel auch wirklich eine einzige Zeile ist. Oftmals sucht man den Fehler und sieht nicht, dass ein simpler Zeilenumbruch der Störenfried ist.

Es gäbe noch eine andere Methode, die sogar etwas sicherer wäre – die Verwendung des SSH-Agents. Für meinen Gebrauch im Heimnetz ist mir die obige Methode allerdings gut genug. Klar ist in meinem Heim-Netz auch scp oder sftp nicht unbedingt notwendig. Aber ich habe es mir einfach angewohnt, die sicheren Methoden zu verwenden. Geht genauso schnell und schadet auf keinen Fall. Wie schon erwähnt braucht man diese Optionen via Kommandozeile eher selten – aber gut zu wissen ist es allemal, dass es sie gibt.

Wer sich an einem Windows-Rechner befindet muss trotzdem nicht auf sicheres Kopieren zu einem SSH-Server verzichten. Filezilla ist hier ebenso verfügbar und es gibt auch das schlanke WinSCP, das Du zum Beispiel hier herunterladen kannst.




 Alle Kommentare als Feed abonnieren

Ein Kommentar zu “Sicher kopieren mit scp und sftp”

  1. Daria says:

    man kann auch ganz einfach mit sftp im nautilus dateitransfer over ssh verwenden. einfach in der adressleiste sftp://user@server eingeben