Comment télécharger un fichier à partir d'un serveur avec SSH / SCP
Les utilisateurs peuvent télécharger en toute sécurité un fichier à partir de n'importe quel serveur distant avec SSH en utilisant l'outil scp en ligne de commande. Cela signifie essentiellement que vous pouvez faire stocker un fichier en toute sécurité sur un serveur distant et le transférer sur un stockage local sans avoir à exposer ce fichier au monde extérieur, car scp offre le même niveau de sécurité et nécessite la même authentification que ssh.
Le téléchargement sécurisé de fichiers avec scp s'adresse principalement aux utilisateurs avancés qui utilisent régulièrement ssh et la ligne de commande sous macOS X, bsd ou linux. Pour ceux qui ont une expérience suffisante de la ligne de commande, l'utilisation de ssh et scp pour télécharger des fichiers distants est facile et, de manière pratique, une fois le transfert de fichiers terminé, la connexion à distance se termine. Cela rend scp préférable à sftp pour les téléchargements rapides de fichiers, bien que vous puissiez évidemment utiliser sftp si vous le souhaitez également.
Télécharger un fichier à partir d'un serveur distant avec une copie sécurisée en SSH
Cela suppose que le serveur distant a ssh actif, et si vous êtes en mesure d'utiliser ssh sur la machine, alors il est probable que scp soit également actif. Si vous n'avez pas de serveur distant pour essayer cela, vous pouvez l'essayer entre les machines Mac OS X ou avec localhost si vous activez ssh et la connexion à distance sur le Mac au préalable.
La syntaxe de base pour utiliser scp (copie sécurisée) pour télécharger en toute sécurité des fichiers distants est la suivante, en remplaçant l'utilisateur, le serveur, le chemin d'accès et la cible selon le cas :
scp user@server:/path/to/remotefile.zip /Local/Target/Destination
Par exemple, pour télécharger un fichier sur le bureau local nommé "nomdefichier.zip" situé dans le répertoire d'origine de l'utilisateur distant "iphonologie" sur le serveur IP 192.168.0.45, la syntaxe serait la suivante :
% scp iphonologie@192.168.0.45:filename.zip ~/Desktop/
Mot de passe:
nomdufichier.zip 100% 126 10.1KB/s 00:00
%
Si l'authentification est correcte, le fichier cible commencera immédiatement à être téléchargé vers la destination cible, avec un pourcentage d'achèvement, une vitesse de téléchargement et un temps de transfert écoulé au fur et à mesure du téléchargement du fichier.
Comme d'habitude avec la ligne de commande, il est important de spécifier la syntaxe exacte.
Si le fichier ou le chemin d'accès comporte un espace dans le nom, vous pouvez utiliser des citations ou des échappements sur le chemin d'accès de la même manière :
scp iphonologie@192.168.0.45 : "/quelque répertoire distant/nomdefichier.zip" ~/Desktop/
scp peut également être utilisé pour placer un fichier en toute sécurité sur un serveur distant en ajustant la syntaxe également, mais nous nous concentrons ici sur le téléchargement d'un fichier plutôt que sur l'envoi de fichiers.
Si vous êtes nouveau sur ssh et que vous le testez vous-même, et si vous ne vous êtes jamais connecté au serveur distant auparavant, il vous sera demandé de confirmer si vous souhaitez ou non vous connecter effectivement à la machine distante. Cela ressemble à cela et nécessite une réponse par "oui" ou par "non" avant que le téléchargement ne commence.
% scp iphonologie@192.168.0.4:filename.zip ~/Desktop/
L'authenticité de l'hôte "192.168.0.4 (192.168.0.4)" ne peut pas être établie.
L'empreinte clé ECDSA est SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780.
Êtes-vous sûr de vouloir continuer à vous connecter (oui/non) ? oui
Avertissement : Ajout permanent de "192.168.0.4" (ECDSA) à la liste des hôtes connus.
Mot de passe:
nom du fichier.zip 100% 126 0.1KB/s 00:00
%
Là encore, si la connexion est approuvée et que la connexion est réussie, le fichier distant sera téléchargé du serveur cible vers l'hôte local.
Vous pouvez également utiliser scp pour télécharger plusieurs fichiers à partir d'un serveur distant :
scp user@host:/remote/path/\{file1.zip,file2.zip\} /Local/Path/
L'utilisation de ssh pour les téléchargements de fichiers à distance comme celui-ci est plus appropriée pour les transferts sécurisés qui nécessitent une authentification. Bien sûr, vous pouvez également télécharger des fichiers avec curl ou wget à partir de serveurs distants, mais les fichiers accessibles avec curl et wget ont tendance à être également accessibles depuis le monde extérieur, alors que ssh et scp nécessitent une authentification ou une clé, et utilisent le cryptage 3DES, ce qui les rend considérablement plus sûrs.