Was ist der Unterschied zwischen SCP und SFTP?

Normalerweise verwende ich den Befehl scp, um Dateien auf *nixes zu übertragen.

Was ist der Unterschied zwischen SFTP und SCP? Arbeiten beide nicht an SSH?

Author: techraf, 2010-04-26

5 answers

Kurz gesagt, SCP kann nur zum Übertragen von Dateien verwendet werden und ist nicht interaktiv (dh alles muss in der Befehlszeile angegeben werden). SFTP ist aufwändiger und ermöglicht interaktive Befehle zum Erstellen von Verzeichnissen, Löschen von Verzeichnissen und Dateien (natürlich alle mit Systemberechtigungen) usw.

 109
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-07-06 02:08:49

Aus Wikipedia:

Im Vergleich zum früheren SCP-Protokoll, die nur Dateiübertragungen erlaubt, die SFTP-Protokoll ermöglicht eine Reihe von Operationen auf remote-Dateien – es ist eher wie ein Remote-Dateisystem Protokoll. Extra eines SFTP-Clients Fähigkeiten im Vergleich zu einem SCP-client wiederaufnahme der Arbeit einbeziehen übertragungen, Verzeichnislisten und remote-Datei entfernen. [1] Für diese gründe es ist relativ einfach zu implementieren Sie einen GUI-SFTP-Client. mit einem GUI-SCP-client.

Und

Obwohl sowohl SCP als auch SFTP die gleiche SSH-Verschlüsselung während der Datei transfer mit der gleichen allgemeinen Ebene von Overhead ist SCP normalerweise viel schneller als SFTP bei der Übertragung dateien, insbesondere bei hoher Latenz Netze. Dies geschieht, weil SCP implementiert einen effizienteren Transfer algorithmus, eine, die nicht erfordert warten für Paket-Bestätigung. Dieser führt zu schnellerer Geschwindigkeit, kommt aber bei der kosten von nicht unterbrechen können eine Übertragung, so anders als SFTP, SCP transfer kann nicht ohne storniert werden beenden der Sitzung.

 107
Author: Jarvin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-04-26 19:36:45

Aus einer reinen Befehlszeilenperspektive:

  • scp hat keinen interaktiven Modus und kann auch keine Befehlsskripte lesen, dh alles muss in die Befehlszeile geschrieben werden.
  • sftp hat einen interaktiven Modus und kann Befehle aus einer Datei lesen.

Ein weiterer wichtiger Unterschied zwischen den 2 Befehlen ist, dass sftp eine lokale Datei kann nicht mit einer einzigen Befehlszeile an einen entfernten Speicherort abgelegt werden, obwohl eine Remote-Datei abgerufen werden kann, während scp kann beides tun.

Sftp get remote-file

sftp user@host:/path/to/remote.file [/path/to/local.file]

Scp remote-Datei

scp user@host:/path/to/remote.file [/path/to/local.file]

Scp setzen Sie die remote-Datei -

scp /path/to/local.file user@host:[/path/to/remote.file]
 13
Author: Stéphane Ch.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-01-20 11:04:11

SSH (S ecure SHell) ist ein kryptografisches Netzwerkprotokoll, mit dem Remote Login und andere Netzwerkdienste sicher über ein ungesichertes Netzwerk betrieben werden können.

Unterschiede: SFTP funktioniert im interaktiven Modus (Sitzung) und SCP funktioniert im nicht interaktiven Modus. Mit SFTP können wir auf das Remote-Dateisystem zugreifen, dh Dateien erstellen, löschen und auflisten.

Gemeinsamkeiten: Beide SCP - (S - ecure Copieren Protocol) und SFTP (S - KH File TTransfer Protocol) sind Netzwerkprotokolle, die unterstützt Datei-management-zwischen hosts in einem Netzwerk. Beide verwenden SSH.

Mehr

 3
Author: Premraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-13 12:37:11

Die meisten Unterschiede der beiden Protokolle wurden bereits in anderen Antworten gesagt, und ausführlicher in https://unix.stackexchange.com/q/8707/19088

Ein weiterer Unterschied besteht laut der Dokumentation von curl darin, dass das SCP-Protokoll nicht sehr portabel ist und normalerweise nur zwischen Unix-Systemen funktioniert.

Übrigens implementiert curl beide Protokolle und ist im Gegensatz zur standardmäßigen OpenSSH-SFTP-Client-Implementierung nicht interaktiv für sowohl SFTP als auch SCP.

Und beachten Sie, dass es auch das FISH - Protokoll gibt, mit dem Sie Dateien über SSH übertragen können, ohne dass SCP oder SFTP erforderlich ist. Soweit ich weiß, ist FISH nicht sehr beliebt, derzeit in nur wenigen Dateimanagern implementiert (Midnight Commander und einige, die KDE-basiert sind) und Lftp.

 3
Author: Pere,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-14 10:53:24