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