D'habitude, j'utilise la commande scp
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?
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 à des autorisations système, bien sûr), etc.
De Wikipedia :
Comparé au protocole SCP antérieur, qui autorisait uniquement les transferts de fichiers, le protocole SFTP permet toute une gamme d’opérations sur des fichiers distants. Il s’agit 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 GUI SFTP par rapport à un client SCP GUI.
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.
D'un point de vue purement en ligne de commande:
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, alors que scp peut faire les deux .
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]
SSH (S ecure SH ell) est un protocole réseau cryptographique permettant à la connexion distante 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 opy P rotocol) et SFTP (S SH F ile T ransfer P rotocol) sont des protocoles réseau, qui prennent en charge la gestion de fichiers entre hôtes sur un réseau. Les deux utilisent SSH.
La plupart des différences entre les deux protocoles ont déjà été dites 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.
A propos, curl implémente les deux protocoles et contrairement à l'implémentation par défaut du client OpenSSH SFTP, il s'agit de non-interactif pour SFTP et SCP.
Et notez qu'il existe également le protocole POISSON , qui vous permet de transférer des fichiers via SSH sans recourir à SCP ni à SFTP. Pour autant que je sache, FISH n’est pas très populaire, il est actuellement implémenté dans quelques gestionnaires de fichiers ( Midnight Commander } et certains basés sur KDE) et Lftp .