GNU/Linux >> Tutoriels Linux >  >> Linux

Comment copier en toute sécurité des fichiers entre des hôtes Linux à l'aide de SCP et SFTP

Récemment, nous avons examiné le rsync pour synchroniser les fichiers entre les emplacements, et nous avons discuté de la similitude d'utilisation et de la syntaxe lors de la duplication de fichiers et de répertoires avec le cp commande. Dans cet article, nous avons examiné le déplacement des bits d'avant en arrière sur la même boîte, entre les systèmes de fichiers ou entre les appareils. Dans un prochain article, nous nous pencherons davantage sur rsync en tant qu'outil permettant de synchroniser les systèmes de fichiers distants avec une version locale ou de sauvegarde. Dans cet article, je souhaite jeter un œil à l'un des outils les plus utiles et les plus utilisés de la boîte à outils Linux sysadmin - le scp commande.

Qu'est-ce que SCP ?

Copie sécurisée ou scp , est une version sécurisée de l'ancien rcp outil (toujours utilisé, mais moins courant) inclus dans la suite d'outils OpenSSH.

OpenSSH a commencé comme un fork BSD du protocole de communication sécurisé SSH d'origine, qui a depuis été re-licencié comme "non libre" et donc généralement non disponible pour Linux. OpenSSH est toujours maintenu sous la licence BSD et est disponible pour une large gamme de plates-formes. Il comprend plusieurs outils communs pour un accès à distance sécurisé, y compris la génération de clés, scp , et sftp (une version sécurisée de FTP, sur laquelle nous reviendrons dans un instant).

Récemment, les développeurs OpenSSH ont indiqué qu'ils considéraient scp être obsolète (ils pensent qu'il est "obsolète, inflexible et difficile à réparer"). On ne sait pas quand il cessera d'être disponible dans les futures versions d'OpenSSH, bien qu'il soit difficile d'imaginer qu'il sera abandonné de si tôt.

Utiliser SCP

L'utilité de scp réside dans sa simplicité. Je l'utilise pour déplacer rapidement des fichiers vers un système de fichiers distant depuis le shell :

skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable

skipworthy@showme's password:

testfoo 100% 25 8.0KB/s 00:00

C'est de la tarte. Je peux également obtenir un fichier depuis un emplacement distant :

skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/

skipworthy@showme's password:

demofoo 100% 0 0.0KB/s 00:00

 skipworthy ~ ls ./enable

bar demofoo foo

Les options de connexion disponibles sont les mêmes qu'avec ssh . Par exemple :

skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/

test.txt 100% 0 0.0KB/s 00:00    

-P spécifie le port pour le ssh connexion, -i spécifie un ssh id key to use for authentication :ces deux options sont utiles pour les scripts. Notez que le scp -P diffère de ssh -p pour spécifier le port. Dans l'exemple ci-dessus, j'ai défini l'emplacement d'un ssh clé (~/.ssh/id_rsa )—que j'ai également généré à l'aide de la boîte à outils OpenSSH—pour authentifier l'accès au périphérique distant. En savoir plus sur les copies de fichiers SSH ici.

Ainsi, vous pouvez voir scp est un outil vraiment utile à avoir à portée de main. Il y a une discussion sur la sagesse d'utiliser cet outil dans un environnement sécurisé, donc YMMV. Je vous suggère de lire un peu et de décider par vous-même.

[ Vous pourriez également aimer : Outils d'administration système :Utiliser rsync pour gérer la sauvegarde, la restauration et la synchronisation des fichiers ]

Alternatives

Et si, pour une raison quelconque, nous ne pouvons pas utiliser scp ? Je recommande deux autres options assez faciles à utiliser :rsync , dont nous avons parlé ici et dont nous parlerons plus en détail dans un autre article, et sftp . Bien qu'aucune de ces options ne soit aussi pratique que scp , les deux ont des fonctionnalités utiles.

sftp est à peu près ce à quoi cela ressemble :FTP sécurisé. Il agit comme FTP sur une connexion gérée par SSH. Bien qu'il ne soit pas aussi simple à utiliser que le "one and done" scp , il offre une gamme d'options de système de fichiers plus sophistiquées et la possibilité de se connecter interactivement à un système de fichiers distant. Il nécessite que le système de fichiers cible soit configuré pour sftp accès.

Connectons-nous à un sftp serveur de manière interactive :

skipworthy ~ sftp enable@ganymede

enable@ganymede's password:

Connected to ganymede.

sftp> pwd

Remote working directory: /upload

sftp> mkdir test

sftp> ls -al

drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .

drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..

drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test

Si nous appuyons sur Tab deux fois, nous pouvons voir une liste de commandes disponibles au niveau du shell :

sftp>

bye cd chdir chgrp chmod chown df dir       

exit get help lcd lchdir lls lmkdir ln        

lpwd ls lumask mkdir mget mput progress put       

pwd quit reget rename reput rm rmdir symlink   

version ! ?         

Vous pouvez donc voir qu'il est possible d'interagir avec le système de fichiers distant. Encore une fois, les principaux inconvénients sont que la cible doit être configurée pour sftp l'accès et l'accès à un répertoire spécifique doivent être configurés et limités par l'administrateur de ce système. Cela en fait une option plus sûre, bien que moins pratique, que scp . Notez également que même s'il n'est pas vraiment possible d'effectuer des transferts de fichiers impromptus comme scp , il est possible d'écrire des scripts et d'insérer des alias de shell pour que cela fonctionne plus facilement si c'est votre problème.

[ Vous pensez à la sécurité ? Consultez ce guide gratuit pour renforcer la sécurité du cloud hybride et protéger votre entreprise. ] 

Récapitulez

Remarque finale :ces deux outils reposent sur la boîte à outils SSH, qui est une partie très importante de l'administration des systèmes Linux, je vous recommande donc fortement de vous familiariser avec elle. Considérez ces excellents articles rédigés par les rédacteurs d'Enable Sysadmin :

  • Comment SSH établit une communication sécurisée
  • Huit façons de protéger l'accès SSH sur votre système
  • SSH sans mot de passe utilisant des paires de clés publiques-privées

Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Comment télécharger ou télécharger des fichiers/répertoires à l'aide de sFTP sous Linux

  3. Transférer en toute sécurité des fichiers et des dossiers entre ordinateurs à l'aide de Croc

  4. Comment transférer des fichiers entre serveurs sous Linux à l'aide de SCP et FTP

  5. Comment transférer des fichiers en toute sécurité à l'aide de SCP

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Comment partager des fichiers de jeu Steam entre Linux et Windows

Comment copier des fichiers sous Linux à l'aide de la commande CP

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux