Quelle est la différence entre SCP et SFTP?

162

D'habitude, j'utilise la scpcommande pour transférer des fichiers sur * nixes.

Quelle est la différence entre SFTP et SCP? Est-ce qu'ils ne travaillent pas tous les deux sur SSH?

non
la source

Réponses:

98

En un mot, SCP ne peut être utilisé que pour transférer des fichiers, et il n’est pas interactif (c’est-à-dire que tout doit être spécifié sur la ligne de commande). SFTP est plus élaboré et permet aux commandes interactives de créer des répertoires, de supprimer des répertoires et des fichiers (tous soumis aux autorisations du système, bien sûr), etc.

Alex
la source
34
Concernant l’interactivité: La différence que vous décrivez concerne des clients SFTP / SCP spécifiques tels qu’implémentés dans OpenSSH. Ce n'est rien sur les protocoles eux-mêmes. Il est parfaitement possible d'implémenter un client SCP interactif ou un client SFTP non interactif.
Martin Prikryl
4
Encore une chose: scp ne fonctionne pas si le serveur n'autorise que l'accès SFTP via la ligne ForceCommand internal-sftp. Je pense PermitTTY noégalement qu’empêche également l’accès scp mais autorise l’accès sftp, bien que j’aurais peut-être mal saisi mon mot de passe à chaque fois que j’ai essayé. Mais ces deux choses ne devraient pas empêcher le syndrome de l’homme mortel. Source: expérience personnelle.
ecube
Puis-je supposer qu'un serveur SFTP est également capable d'accepter les transferts SCP?
mardi
@gus non, voir le commentaire de ecube
Père
104

De Wikipedia :

Par rapport au protocole SCP antérieur, qui autorisait uniquement les transferts de fichiers, le protocole SFTP permettait une gamme d’opérations sur des fichiers distants. Il s’agissait plus d’un protocole de système de fichiers distant. Les capacités supplémentaires d'un client SFTP par rapport à un client SCP incluent la reprise des transferts interrompus, les listes de répertoires et la suppression de fichiers à distance. [1] Pour ces raisons, il est relativement simple d'implémenter un client SFI d'interface graphique par rapport à un client SCP d'interface graphique.

et

Bien que SCP et SFTP utilisent le même cryptage SSH lors du transfert de fichiers avec le même niveau général de surcharge, SCP est généralement beaucoup plus rapide que SFTP pour transférer des fichiers, en particulier sur les réseaux à latence élevée. Cela est dû au fait que SCP implémente un algorithme de transfert plus efficace, qui ne nécessite pas d'attendre les confirmations de paquets. Cela conduit à une vitesse plus rapide, mais aux dépens de l'impossibilité d'interrompre un transfert. Par conséquent, contrairement à SFTP, le transfert SCP ne peut pas être annulé sans mettre fin à la session.

Jarvin
la source
18
"SCP est généralement beaucoup plus rapide que SFTP pour transférer des fichiers."
Micah Bolen
3
"Mais au prix de ne pas pouvoir interrompre un transfert". C'est un compromis assez important.
aaaaaa
aaaaaa, "sans mettre fin à la session", ce qui n’a rien de grave si la session n’est que pour copier le fichier. Si vous copiez beaucoup de fichiers, le client peut également attendre la fin de la copie d’un fichier individuel.
Victor Sergienko
9

D'un point de vue purement en ligne de commande:

  • scp n'a pas de mode interactif et ne peut pas lire les scripts de commande, cela signifie que tout doit être écrit sur la ligne de commande.
  • sftp a un mode interactif et peut lire les commandes d'un fichier.

Une autre différence importante entre les 2 commandes est que sftp ne peut pas placer un fichier local sur un emplacement distant en utilisant une seule ligne de commande , bien qu'il puisse obtenir un fichier distant, tandis que scp peut faire les deux .

sftp obtenir le fichier distant

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

scp obtenir un fichier distant

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

scp mis fichier distant

scp /path/to/local.file user@host:[/path/to/remote.file]
Stéphane Ch.
la source
2
Mettre un fichier:sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
gdw2
3

SSH ( S ecure SH ell) est un protocole réseau cryptographique permettant à la connexion à distance et à d’autres services réseau de fonctionner en toute sécurité sur un réseau non sécurisé.

Différences: SFTP fonctionne en mode interactif (session) et SCP en mode non interactif. En utilisant SFTP, nous pouvons accéder au système de fichiers distant, c'est-à-dire créer, supprimer et lister des fichiers.

Similitudes: Les deux SCP ( S ecure C opier P ROTOCOLE) et SFTP ( S SH F ile T ransfert P ROTOCOLE) sont des protocoles de réseau, qui prend en charge la gestion des fichiers entre des hôtes d'un réseau. Les deux utilisent SSH.

plus

Premraj
la source
2

La plupart des différences entre les deux protocoles ont déjà été mentionnées dans d'autres réponses et plus verbalement dans https://unix.stackexchange.com/q/8707/19088

Une autre différence, selon la documentation de curl , est que le protocole SCP n'est pas très portable et ne fonctionne généralement qu'entre systèmes Unix.

À propos, curl implémente les deux protocoles et contrairement à l'implémentation du client OpenSSH SFTP par défaut, il n'est pas interactif pour SFTP et SCP.

Et notez qu'il existe également le protocole FISH , qui vous permet de transférer des fichiers via SSH sans avoir besoin de SCP ou de SFTP. Autant que je sache, FISH n’est pas très populaire, elle est actuellement mise en œuvre dans quelques gestionnaires de fichiers ( Midnight Commander et certains basés sur KDE) et Lftp .

Pere
la source
2
"Une autre différence, selon la documentation de curl, est que le protocole SCP n'est pas très portable et ne fonctionne généralement qu'entre systèmes Unix." L'ironie de cette partie de votre réponse est que l'interface graphique SCP la plus populaire s'appelle WinSCP et, vous l'avez deviné, il s'agit d'un programme Windows.
Brett
1
@brett le client le plus populaire est probablement le scp d'OpenSSH, je dirais qu'il est hautement déployé. WinSCP est un client SCP / SFTP / etc, mais il est de nos jours principalement utilisé en tant que client FTP: "En juin 2003, la version 3.0 introduisait le support de l’alternative à SCP, le protocole SFTP. Au fil du temps, elle a évolué protocole primaire. Malgré cela, le nom bien établi «WinSCP» a été préservé. " (de Histoire de WinSCP: winscp.net/fr/docs/project_history)
Pere