De la différence entre rsync, scp et sftp

Publié le 08/08/2017

J'ai encore appris un truc à la noix aujourd'hui: SCP et SFTP ne sont pas du tout équivalents pour l'envoi de documents sur un serveur en se connectant avec SSH. La maniÚre de se connecter, oui; la méthode de transfert, non! SCP ne fait que copier les fichiers; SFTP permet de gérer plus finement (en mode interactif, si besoin) les fichiers et d'explorer l'arborescence si besoin.

SFTP doit ĂȘtre activĂ© manuellement dans le fichier /etc/ssh/sshd_config alors qu'SCP pourra ĂȘtre utilisĂ© dĂšs qu'une connexion SSH sera fonctionnelle.

Le truc Ă  savoir, c'est qu'il est possible d'autoriser une connexion SSH, empĂȘcher l'utilisation d'un shell, et autoriser malgrĂ© tout le protocole SFTP. En gros, on peut donc renvoyer l'utilisateur chez lui s'il se connecte au shell, mais l'autoriser s'il s'agit uniquement d'un transfert de fichiers (et oui: SCP ne sert qu'au transfert de fichiers... Mais comme la connexion semble ĂȘtre ouverte, le serveur vous enverra dans les ronces).

Pour passer SFTP en mode non-interactif, on peut procéder comme ceci (SCP l'est d'office, lui, en non-interactif):

sftp <HOST> -b <<EOF
put file1
put file2
EOF

Voir aussi ici pour les détails d'installation du service SFTP complet.

Et pour simplifier:

SFTP = SSH + SFTP-server on server
SCP  = SSH + `scp` on server side
FISH = SSH + `dd` (and some other basic Unix utilities on the server side only)