Antworten:
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 es interaktiven Befehlen, Verzeichnisse zu erstellen, Verzeichnisse und Dateien zu löschen (alles unterliegt natürlich den Systemberechtigungen) usw.
ForceCommand internal-sftp
. Ich denke, PermitTTY no
verhindert auch scp-Zugriff, ermöglicht aber sftp-Zugriff, obwohl ich mein Passwort jedes Mal, wenn ich es versuchte, falsch eingeben hätte können. Aber diese beiden Dinge sollten sftp nicht verhindern. Quelle: persönliche Erfahrung.
Aus Wikipedia :
Im Vergleich zum früheren SCP-Protokoll, das nur Dateiübertragungen zulässt, ermöglicht das SFTP-Protokoll eine Reihe von Vorgängen für Remote-Dateien - es ähnelt eher einem Remote-Dateisystemprotokoll. Die zusätzlichen Funktionen eines SFTP-Clients im Vergleich zu einem SCP-Client umfassen das Fortsetzen unterbrochener Übertragungen, Verzeichnislisten und das Entfernen von Remotedateien. [1] Aus diesen Gründen ist es relativ einfach, einen GUI-SFTP-Client im Vergleich zu einem GUI-SCP-Client zu implementieren.
und
Obwohl sowohl SCP als auch SFTP während der Dateiübertragung dieselbe SSH-Verschlüsselung mit demselben allgemeinen Overhead verwenden, ist SCP beim Übertragen von Dateien in der Regel viel schneller als SFTP, insbesondere in Netzwerken mit hoher Latenz. Dies geschieht, weil SCP einen effizienteren Übertragungsalgorithmus implementiert, bei dem nicht auf Paketbestätigungen gewartet werden muss. Dies führt zu einer höheren Geschwindigkeit, hat jedoch den Nachteil, dass die Übertragung nicht unterbrochen werden kann. Daher kann die SCP-Übertragung im Gegensatz zu SFTP nicht abgebrochen werden, ohne die Sitzung zu beenden.
Aus einer rein Befehlszeilenperspektive:
Ein weiterer wichtiger Unterschied zwischen den beiden Befehlen besteht darin, dass sftp eine lokale Datei nicht über eine einzige Befehlszeile an einen entfernten Ort verschieben kann , obwohl es eine entfernte Datei abrufen kann , während scp beides kann .
sftp user@host:/path/to/remote.file [/path/to/local.file]
scp user@host:/path/to/remote.file [/path/to/local.file]
scp /path/to/local.file user@host:[/path/to/remote.file]
sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
SSH ( S ecure SH ell) ist ein kryptographisches Netzwerk - Protokoll zu ermöglichen Remote - Login und andere Netzwerk - Dienste sicher über ein unsicheres Netz zu betreiben.
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 C opy P rotokoll) und SFTP ( S SH F ile T ransfer P rotokoll) sind Netzwerkprotokolle, die zwischen Hosts in einem Netzwerk - Dateiverwaltung unterstützt. Beide verwenden SSH.
Die meisten Unterschiede der beiden Protokolle wurden bereits in anderen Antworten und ausführlicher in https://unix.stackexchange.com/q/8707/19088 erwähnt
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.
Im Übrigen implementiert curl beide Protokolle und ist im Gegensatz zur Standardimplementierung des OpenSSH-SFTP-Clients für SFTP und SCP nicht interaktiv .
Beachten Sie, dass es auch das FISH- Protokoll gibt, mit dem Sie Dateien ohne SCP oder SFTP über SSH übertragen können. Soweit ich weiß, ist FISH nicht sehr beliebt und wird derzeit nur in wenigen Dateimanagern ( Midnight Commander und einige, die auf KDE basieren) und Lftp implementiert .