GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kopieren Sie Dateien sicher zwischen Linux-Hosts mit SCP und SFTP

Kürzlich haben wir uns den rsync angesehen Befehl zum Synchronisieren von Dateien zwischen Standorten, und wir haben die Ähnlichkeit der Verwendung und Syntax beim Duplizieren von Dateien und Verzeichnissen mit dem cp besprochen Befehl. In diesem Artikel haben wir uns mit dem Hin- und Herschieben der Bits auf derselben Box, zwischen Dateisystemen oder zwischen Geräten befasst. In einem kommenden Artikel werden wir uns rsync genauer ansehen als Werkzeug, um entfernte Dateisysteme mit einer lokalen oder Backup-Version synchron zu halten. In diesem Artikel möchte ich einen Blick auf eines der nützlichsten und am häufigsten verwendeten Tools in der Linux-Sysadmin-Toolbox werfen – das scp Befehl.

Was ist SCP?

Secure Copy oder scp , ist eine sichere Version des älteren rcp Tool (das immer noch verwendet wird, aber weniger gebräuchlich ist), das in der OpenSSH-Suite von Tools enthalten ist.

OpenSSH begann als BSD-Fork des ursprünglichen sicheren SSH-Kommunikationsprotokolls, das seitdem als „nicht frei“ neu lizenziert wurde und daher nicht allgemein für Linux verfügbar ist. OpenSSH wird weiterhin unter der BSD-Lizenz verwaltet und ist für eine Vielzahl von Plattformen verfügbar. Es enthält mehrere gängige Tools für sicheren Fernzugriff, einschließlich Schlüsselgenerierung, scp und sftp (eine sichere Version von FTP, auf die wir gleich noch zu sprechen kommen).

Kürzlich haben OpenSSH-Entwickler angegeben, dass sie scp in Betracht ziehen veraltet sein (sie glauben, dass es "veraltet, unflexibel und nicht leicht zu reparieren ist"). Es ist unklar, wann es in zukünftigen Versionen von OpenSSH nicht mehr verfügbar sein wird, obwohl es schwer vorstellbar ist, dass es in absehbarer Zeit wegfallen wird.

SCP verwenden

Die Nützlichkeit von scp liegt in seiner Einfachheit. Ich benutze es, um Dateien schnell von der Shell in ein entferntes Dateisystem zu verschieben:

skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable

skipworthy@showme's password:

testfoo 100% 25 8.0KB/s 00:00

Kinderleicht. Ich kann auch eine Datei von einem entfernten Ort abrufen:

skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/

skipworthy@showme's password:

demofoo 100% 0 0.0KB/s 00:00

 skipworthy ~ ls ./enable

bar demofoo foo

Die verfügbaren Verbindungsoptionen sind die gleichen wie bei ssh . Zum Beispiel:

skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/

test.txt 100% 0 0.0KB/s 00:00    

-P gibt den Port für ssh an Verbindung, -i spezifiziert ein ssh ID-Schlüssel zur Authentifizierung:Diese beiden Optionen sind für Skripte nützlich. Beachten Sie, dass scp -P unterscheidet sich von ssh -p zur Angabe des Ports. Im obigen Beispiel habe ich den Speicherort eines ssh festgelegt Schlüssel (~/.ssh/id_rsa ) – die ich ebenfalls mit dem OpenSSH-Toolkit generiert habe – um den Zugriff auf das Remote-Gerät zu authentifizieren. Hier erfahren Sie mehr über SSH-Dateikopien.

Sie können also scp sehen ist ein wirklich nützliches Werkzeug, das Sie immer zur Hand haben sollten. Es gibt einige Diskussionen darüber, wie sinnvoll es ist, dieses Tool in einer sicheren Umgebung zu verwenden, so YMMV. Ich würde vorschlagen, etwas zu lesen und selbst zu entscheiden.

[Das könnte Ihnen auch gefallen: Sysadmin-Tools:Sicherung, Wiederherstellung und Dateisynchronisierung mit rsync verwalten]

Alternativen

Was ist, wenn wir aus irgendeinem Grund scp nicht verwenden können? ? Ich empfehle zwei weitere Optionen, die ziemlich einfach zu verwenden sind:rsync , worüber wir hier gesprochen haben und in einem anderen Artikel ausführlicher darauf eingehen werden, und sftp . Keine dieser Optionen ist jedoch so bequem wie scp , beide haben einige nützliche Funktionen.

sftp ist so ziemlich das, wonach es sich anhört:Secure FTP. Es verhält sich wie FTP über eine SSH-verwaltete Verbindung. Obwohl es nicht so einfach zu verwenden ist wie das "One and Done" scp Befehl bietet es eine Reihe anspruchsvollerer Dateisystemoptionen und die Möglichkeit, sich interaktiv mit einem entfernten Dateisystem zu verbinden. Es erfordert, dass das Zieldateisystem für sftp konfiguriert ist Zugriff.

Lassen Sie uns eine Verbindung zu einem sftp herstellen Server interaktiv:

skipworthy ~ sftp enable@ganymede

enable@ganymede's password:

Connected to ganymede.

sftp> pwd

Remote working directory: /upload

sftp> mkdir test

sftp> ls -al

drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .

drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..

drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test

Wenn wir Tab drücken zweimal sehen wir eine Liste von Befehlen, die in der Shell verfügbar sind:

sftp>

bye cd chdir chgrp chmod chown df dir       

exit get help lcd lchdir lls lmkdir ln        

lpwd ls lumask mkdir mget mput progress put       

pwd quit reget rename reput rm rmdir symlink   

version ! ?         

Sie können also sehen, dass es möglich ist, mit dem entfernten Dateisystem zu interagieren. Auch hier besteht der Hauptnachteil darin, dass das Ziel für sftp konfiguriert werden muss Der Zugriff und der Zugriff auf ein bestimmtes Verzeichnis muss vom Administrator dieses Systems konfiguriert und eingeschränkt werden. Dies macht es zu einer sichereren, wenn auch weniger bequemen Option als scp . Beachten Sie auch, dass es zwar nicht wirklich möglich ist, spontane Dateiübertragungen wie scp durchzuführen , ist es möglich, Skripte zu schreiben und Shell-Aliase einzufügen, damit dies reibungsloser funktioniert, wenn das Ihr Problem ist.

[ Denken Sie an Sicherheit? Lesen Sie diesen kostenlosen Leitfaden zur Verbesserung der Hybrid Cloud-Sicherheit und zum Schutz Ihres Unternehmens. ] 

Abschluss

Schlussbemerkung:Diese beiden Tools stützen sich auf die SSH-Toolbox, die ein sehr wichtiger Bestandteil der Linux-Systemverwaltung ist, daher empfehle ich dringend, sich damit vertraut zu machen. Betrachten Sie diese hervorragenden Artikel von Enable Sysadmin-Autoren:

  • Wie SSH eine sichere Kommunikation herstellt
  • Acht Möglichkeiten, den SSH-Zugriff auf Ihrem System zu schützen
  • Passwortloses SSH mit öffentlich-privaten Schlüsselpaaren

Linux
  1. So übertragen Sie Dateien zwischen zwei Computern mit den Befehlen nc und pv

  2. So laden Sie Dateien/Verzeichnisse mit sFTP unter Linux hoch oder herunter

  3. Übertragen Sie Dateien und Ordner sicher zwischen Computern mit Croc

  4. So übertragen Sie Dateien sicher mit dem SCP-Befehl unter Linux

  5. So kopieren Sie mehrere Dateien gleichzeitig mit scp

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So teilen Sie Steam-Spieldateien zwischen Linux und Windows

So kopieren Sie Dateien unter Linux mit dem CP-Befehl

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile