Selon les développeurs d'OpenSSH (avril 2019), le protocole SCP est obsolète, rigide et difficile à corriger ; ils recommandent l'utilisation de protocoles plus modernes comme SFTP et rsync pour le transfert de fichiers. Depuis la version 9.0 d'OpenSSH, scple client utilise donc par défaut SFTP pour les transferts de fichiers, au lieu du protocole SCP/RCP.
Fonction
Normalement, un client établit une connexion SSH avec l'hôte distant et demande le lancement d'un processus SCP sur le serveur distant. Ce processus SCP distant peut fonctionner selon deux modes :
- le mode source, qui lit les fichiers (généralement sur le disque) et les renvoie au client, ou
- Le mode sink accepte les fichiers envoyés par le client et les écrit (généralement sur disque) sur l'hôte distant.
Pour la plupart des clients SCP, le mode source est généralement activé par l' -foption `-from`, tandis que le mode récepteur est activé par -t`-to`. Ces options sont utilisées en interne et ne sont pas documentées en dehors du code source de SCP.
Mode télécommande
Auparavant, lors d'une copie sécurisée distante à distante, le client SCP ouvrait une connexion SSH vers l'hôte source et demandait à ce dernier d'ouvrir à son tour une connexion SCP vers la destination. (Le mode distant à distant ne prenait pas en charge l'ouverture simultanée de deux connexions SCP et l'utilisation du client source comme intermédiaire). Par conséquent, SCP ne pouvait pas être utilisé pour copier à distance de la source vers la destination en mode d'authentification par mot de passe ou par clavier, car cela aurait révélé les informations d'identification du serveur de destination à la source. En revanche, cela restait possible avec les méthodes basées sur des clés ou GSSAPI qui ne nécessitent aucune intervention de l'utilisateur.
Plus récemment, le mode distant-à-distant permet d'acheminer le trafic via le client à l'origine du transfert, même s'il s'agit d'un tiers. Ainsi, les informations d'identification d'autorisation doivent résider uniquement sur le client d'origine, le tiers.
Problèmes liés à l'utilisation des profils shell bavards
SCP n'attend pas de texte communiquant avec le shell de connexion SSH. Le texte transmis en raison du profil SSH (par exemple echo "Welcome"dans le .bashrcfichier) est interprété comme un message d'erreur, et une ligne nulle echo ""provoque le blocage du client SCP en attente de la fin du message d'erreur.
programme scp
Le programme SCP est un outil logiciel implémentant le protocole SCP en tant que démon de service ou client. Il s'agit d'un programme permettant d'effectuer des copies sécurisées.
Le programme SCP le plus répandu est sans doute celui en ligne de commandescp d'OpenSSH , fourni avec la plupart des implémentations SSH. Ce scpprogramme est l'équivalent sécurisé de la rcpcommande `scp`. scpIl doit être installé sur tous les serveurs SSH souhaitant proposer le service SCP, car il fait également office de serveur SCP. Depuis OpenSSH 9.0, le programme a été mis à jour pour utiliser le protocole SFTPscp , plus récent et plus sécurisé ; une option permet désormais d'utiliser SCP avec les anciens serveurs dédiés à SCP. -O
Syntaxe
En général, la syntaxe d' scpun programme est semblable à la syntaxe de cp(copie) :
Copie d'un fichier local vers un hôte distant :
scp LocalSourceFile utilisateur @ remotehost : répertoire / TargetFile
Copie d'un fichier depuis l'hôte distant et copie récursive d'un dossier (avec -roption) depuis l'hôte distant :
scp utilisateur @ hôtedistant : répertoire / FichierSource FichierCibleLocal scp -r utilisateur @ hôte : répertoire / DossierSource DossierCibleLocal
Notez que si l'hôte distant utilise un port autre que le port par défaut 22, vous pouvez le spécifier dans la commande. Par exemple, pour copier un fichier depuis l'hôte :
scp -P 2222 utilisateur @ hôte : répertoire / SourceFile TargetFile
Autres clients
Le protocole SCP (Secure Copy Protocol) ne prenant en charge que les transferts de fichiers, les clients SCP avec interface graphique sont rares, car leur implémentation requiert des fonctionnalités supplémentaires ( au moins l'affichage du contenu des répertoires ). Par exemple, WinSCP utilise par défaut le protocole SFTP. Même en mode SCP, les clients comme WinSCP ne sont généralement pas de purs clients SCP, car ils doivent recourir à d'autres moyens pour implémenter les fonctionnalités supplémentaires (comme la lscommande `scp` ). Ceci engendre des problèmes de dépendance à la plateforme.
Les clients SFTP constituent des outils plus complets pour la gestion des fichiers via SSH .
Sécurité
En 2019, la vulnérabilité 2019-6111 a été annoncée concernant l'outil et le protocole OpenSSH SCP permettant aux utilisateurs d'écraser des fichiers arbitraires dans le répertoire cible du client SCP.