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