Réponses:
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.
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.
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.
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, tandis 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]
sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
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.
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 .