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 sur la ligne de commande. Essentiellement, cela signifie que vous pouvez avoir un fichier stocké 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 requiert 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 dans macOS X, bsd ou linux. Pour ceux qui ont une expérience de ligne de commande adéquate, il est facile d'utiliser ssh et scp pour télécharger des fichiers distants et, de manière pratique, une fois le transfert de fichiers terminé, la connexion à distance se termine. Cela rend scp préférentiel à sftp pour les téléchargements de fichiers rapides, bien que vous puissiez évidemment utiliser sftp si vous le souhaitez aussi.

Téléchargement d'un fichier à partir du serveur distant avec SSH Secure Copy

Cela suppose que le serveur distant a ssh actif, et si vous êtes capable de ssh dans la machine, il aura probablement scp actif aussi bien. Si vous n'avez pas de serveur distant pour l'essayer, vous pouvez l'essayer entre les machines Mac OS X ou avec localhost si vous avez préalablement activé ssh et Remote Login sur Mac.

La syntaxe de base pour utiliser scp (copie sécurisée) pour le téléchargement sécurisé de fichiers distants est la suivante, en remplaçant l'utilisateur, le serveur, le chemin 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é "filename.zip" situé dans le répertoire personnel de l'utilisateur distant "osxdaily" sur le serveur IP 192.168.0.45, la syntaxe serait la suivante:

% scp [email protected]:filename.zip ~/Desktop/
Password:
filename.zip 100% 126 10.1KB/s 00:00
%

En supposant que l'authentification est correcte, le fichier cible commencera immédiatement à télécharger vers la destination cible, offrant un pourcentage d'achèvement, la vitesse de téléchargement et le 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 a un espace dans le nom, vous pouvez utiliser des guillemets ou s'échapper sur le chemin comme ceci:

scp [email protected]:"/some remote directory/filename.zip" ~/Desktop/

scp peut également être utilisé pour placer de manière sécurisée un fichier sur un serveur distant en ajustant la syntaxe, mais nous nous concentrons sur le téléchargement d'un fichier plutôt que sur le téléchargement de fichiers ici.

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 réellement vous connecter à la machine distante. Cela ressemble à cela et nécessite une réponse «oui» ou «non» avant le début du téléchargement.
% scp [email protected]:filename.zip ~/Desktop/
The authenticity of host '192.168.0.4 (192.168.0.4)' can't be established.
ECDSA key fingerprint is SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.4' (ECDSA) to the list of known hosts.
Password:
filename.zip 100% 126 0.1KB/s 00:00
%

Encore une fois, en supposant que la connexion soit approuvée et que la connexion soit 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 distants comme celui-ci est la plus appropriée pour les transferts sécurisés nécessitant 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 sont également accessibles depuis le monde extérieur, tandis que ssh et scp nécessitent une authentification ou une clé et utilisent le cryptage 3DES. plus sécurisé.