Comment transférer des fichiers en toute sécurité sous Linux à l'aide de SCP
Lors du transfert de fichiers vers un serveur Linux distant, vous avez quelques options. L'une des meilleures méthodes consiste à utiliser un programme appelé Secure Copy, ou SCP, qui s'exécute sur SSH pour transférer rapidement des fichiers sur votre réseau vers un système distant. Ce tutoriel vous montre comment transférer des fichiers en toute sécurité sous Linux à l'aide de SCP.
Configuration de SSH
Sur votre serveur distant, vous devrez installer un serveur SSH. Le plus populaire sous Linux est le serveur OpenSSH. Pour l'installer, exécutez l'une des commandes suivantes :
# Serveur basé sur Debian/Ubuntu sudo apt install ssh # Fedora sudo dnf install openssh
Selon votre distribution, vous devrez peut-être autoriser SSH via certains pare-feu logiciels. Dans Ubuntu, ce problème n'existe pas, mais dans Fedora Vous devrez également exécuter les commandes suivantes :
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload
Connectez-vous à votre système via SSH
Avant de pouvoir vous connecter via SSH, vous devez connaître l'adresse IP du serveur distant. Sur les serveurs graphiques, l'adresse IP apparaît dans l'applet Réseau des paramètres système. Sur la plupart des serveurs, vous devez utiliser la commande ip dans le terminal.
ip addr
Dans la sortie, recherchez la ligne qui commence par inet Sous ethX ou enpXsy , selon la façon dont votre interface réseau se connecte au système. Dans mon cas, c'est 192.168.68.108.
tester Connexion SSH , accédez à Appareil Linux/Unix différent et type :
Changement "utilisateur" à Nom d'Utilisateur le serveur réel.
Entrer mot de passe Ce compte, et vous travaillez. Si vous avez une question sur "L'authenticité de l'hôte ne peut être prouvée." Vous n'avez qu'à répondre par "Oui". Il s'agit d'un contrôle de sécurité conçu pour s'assurer que vous êtes connecté à votre serveur réel et non à une fraude. Vous devriez voir la même invite sur le système client que vous voyez lorsque vous connectez Entrée directement au serveur, ce qui signifie que votre connexion a réussi. Vous devez également configurer les connexions SSH pour une sécurité maximale, ou même Configurer l'authentification à deux facteurs , avant de passer à l'étape suivante.
Utiliser SCP pour transférer des fichiers
Maintenant que vous avez testé la connexion SSH, commencez à copier les fichiers entre les deux appareils. La copie sécurisée est réalisée à l'aide de la commande scp. Le format de base de la commande scp est :
scp /CHEMIN/VERS/FILE UTILISATEUR@ADRESSE-IP:CHEMIN/VERS/DESIRED/DESTINATION
Par exemple, pour copier un fichier "sauvegarde.tar.gz" De la machine locale à un dossier "sauvegarde.tar.gz" dans le répertoire personnel de l'utilisateur "ramces" Sur le serveur distant avec adresse IP 192.168.68.165 , Utiliser:
scp sauvegarde.tar.gz [email protected]:~/sauvegardes/
Comme lorsque vous vous connectez en utilisant ssh, vous serez invité à entrer le mot de passe. Vous ne serez pas invité à entrer le Nom d'utilisateur, comme spécifié dans la commande.
Vous pouvez également utiliser des caractères génériques tels que :
scp *.tar.gz [email protected]:~/sauvegardes/
Pour copier un fichier du serveur distant vers la machine locale, il suffit d'inverser les paramètres :
scp [email protected]:~/backups/backup.tar.gz ./
Remarquez le point à la fin de celui-ci? Ça veut dire "dossier en cours" , comme avec commandes standard cp ou etc. Vous pouvez facilement sélectionner un autre répertoire si vous le souhaitez.
scp-r [email protected]:~/sauvegardes/ sauvegardes-du-serveur/
Et pareil avec les jokers :
scp [email protected]:~/sauvegardes/*.txz ./
Pour copier récursivement un répertoire sur un serveur distant, utilisez option -r:
scp -r sauvegardes/ [email protected]:~/sauvegardes/
Pour copier une copie dupliquée d'un répertoire du serveur distant vers la machine locale, utilisez :
scp-r [email protected]:~/sauvegardes/ ./
Compression de transfert de fichiers dans SCP
Outre la copie de base, il est également possible de modifier le comportement de SCP lors de ces transferts de fichiers. Par exemple, vous pouvez utiliser la balise -C Pour compresser les données que SCP envoie aux clients distants :
scp -C sauvegarde.tar.gz [email protected]:/home/ramces/
Cette option fonctionne en compressant chaque paquet de données lors de son envoi via SCP. En tant que tel, cela peut être extrêmement utile si vous êtes sur une connexion à bande passante limitée et que vous souhaitez envoyer un fichier de manière fiable à un serveur distant.
Semblable aux options ci-dessus, vous pouvez également utiliser -C avec l'étiquette -r Compressez les fichiers et transférez-les de manière récursive vers une machine distante. Par exemple, la commande suivante compresse et récupère un fichier "sauvegarde.tar.gz" Depuis mon serveur distant :
scp-Cr [email protected]:/home/ramces/sauvegardes /home/ramces/
Optimisez la transmission des données avec SCP
Pour la plupart, SCP essaie d'utiliser Algorithme de cryptage AES-128 pour tous ses transferts de fichiers. Cependant, il existe des cas où cet algorithme particulier ne conviendra pas aux fichiers que vous souhaitez transférer.
Sachant cela, il est possible d'améliorer et de sécuriser davantage SCP en modifiant directement l'algorithme de chiffrement pour une transmission spécifique. Pour ce faire, vous devez utiliser la balise -c suivi du code que vous souhaitez utiliser.
Par exemple, la commande suivante déplace un fichier "sauvegarde.tar.gz" à mon serveur distant en utilisant AES-256 :
scp -c aes256-ctr ./backup.tar.gz [email protected]:/home/ramces/
De plus, il vous offre la possibilité -c Fournissez également une liste des chiffrements que vous souhaitez utiliser pour transférer un fichier particulier. Par exemple, la commande suivante utilise à la fois AES-192 و AES-256 pendant le transfert d'un fichier "sauvegarde.tar.gz" Vers mon serveur distant :
scp -c aes192-ctr, aes256-ctr ./backup.tar.gz [email protected]:/home/ramces/
Limiter l'utilisation de la bande passante dans SCP
Bien que la compression des paquets de fichiers puisse vous aider à utiliser SCP dans des conditions de réseau médiocres, elle peut également limiter la bande passante utilisée par le programme lors de la transmission. Ceci est utile dans les cas où vous utilisez une connexion limitée et ne voulez pas que SCP prenne le contrôle de la bande passante de votre réseau.
Pour limiter la bande passante effective du programme, vous devez utiliser balise -l suivi du montant maximum souhaité En kilobits par seconde (Kb/s). Par exemple, l'exécution de la commande suivante déplacera un fichier "sauvegarde.tar.gz" Vers mon serveur distant avec une bande passante effective de 1600 Kb/s :
scp -l 1600 ./backup.tar.gz [email protected]:/home/ramces/
télé à télé avec SCP
Outre la copie de fichiers locaux sur votre serveur distant et vice versa, vous pouvez également utiliser SCP pour gérer plusieurs serveurs distants à partir de votre machine locale, car SCP ne gère que les transferts de fichiers et ne fait pas de distinction entre une machine locale et une machine distante.
Pour transférer entre deux serveurs distants, vous devez mentionner explicitement le Nom d'utilisateur et l'adresse de chacune de ces machines. Par exemple, l'exécution de la commande suivante déplacera un fichier "sauvegarde à distance.tar.gz" mine entre deux serveurs distants :
scp [email protected]:/home/ramces/remote-backup.tar.gz [email protected]:/home/ramces/
Utiliser un proxy avec SCP
Par défaut, SCP utilise l'adresse IP de votre ordinateur local lorsqu'il transfère des fichiers entre différents hôtes. Bien que cela convienne parfaitement dans des situations normales, cela peut poser problème si votre réseau local restreint toute activité SCP. Un moyen rapide de résoudre ce problème consiste à faire passer votre connexion locale via un proxy SSH.
Pour ce faire, vous devez utiliser une balise -o suivi d'une option Commande proxy. Cela vous permet de créer une connexion SSH de base vers un nouvel appareil qui exécutera à son tour votre commande SCP. Par exemple, l'exécution de ce qui suit créera un nouvel agent SSH sur une machine distante et transférera un fichier "sauvegarde.tar.gz" En l'utilisant:
scp -o "Commande Proxy ssh [email protected] nc %h %p" ./backup.tar.gz [email protected]:/home/ramces/
Changer le port par défaut dans SCP
Outre la création d'un proxy SSH de base, vous pouvez également modifier le port par défaut pour SCP. Ceci est particulièrement utile si vous sécurisez un serveur Linux et que vous ne souhaitez pas exposer de ports virtuels.
Pour utiliser SCP avec un port différent, vous devez utiliser un indicateur -P suivi du numéro de port que vous souhaitez utiliser. Par exemple, la commande suivante copiera un répertoire "Sauvegarde" récursivement et connectez-vous au serveur distant en utilisant le port 2222:
scp -r -P 2222 ./sauvegarde [email protected]:/home/ramces/
Utiliser le mode silencieux SCP
Enfin, il est également possible de supprimer complètement toute sortie de terminal de la commande SCP. Ceci est particulièrement utile si vous souhaitez créer un script non interactif qui s'exécute dans votre terminal. Non seulement cela, mais vous pouvez également automatiser entièrement ce processus en créant Cron et transfert Clé SSH privé à votre serveur.
Pour créer un transport SCP silencieux, vous devez utiliser la balise -q. Par exemple, la commande suivante déplacera un fichier "sauvegarde.tar.gz" silencieusement à mon serveur distant :
scp -q ./backup.tar.gz [email protected]:/home/ramces/
Foire Aux Questions
Q1. Ma télécommande pour me téléporter ne fonctionne pas dans SCP. Comment puis-je réparer cela?
réponse. Ce problème est probablement dû à un port bloqué dans l'un des fichiers de configuration de votre machine distante. Pour résoudre ce problème, assurez-vous que le port par défaut pour SSH est ouvert sur les deux appareils.
Ce problème peut également être causé par le fait que l'une de vos machines distantes se trouve derrière une connexion CG-NAT, de sorte que toute connexion externe à votre machine distante ne se résoudra pas correctement. Pour résoudre ce problème, vous devez utiliser Logiciel VLAN , مثل Yggdrasil , qui vous permettra de traverser CG-NAT.
Q2. J'ai activé le proxy SCP et l'hôte distant a fermé la connexion. Que puis-je faire?
réponse. Ce problème est probablement dû à un problème avec votre machine proxy. Pour démarrer correctement l'agent SSH, assurez-vous que la machine que vous souhaitez utiliser dispose d'un serveur OpenSSH et de netcat. Pour installer ces programmes dans Ubuntu, Exécutez la commande suivante: sudo apt installe ssh netcat.
Q3. Est-il possible de trouver tous les chiffrements disponibles pour SCP ?
réponse. Par défaut, SCP s'appuie fortement sur le protocole SSH pour ses fonctions de chiffrement. Pour cette raison, vous pouvez utiliser le script SSH pour imprimer une liste de chiffrements que vous pouvez utiliser avec SCP. Par exemple, vous pouvez exécuter chiffrements ssh -Q Imprime une courte liste de tous les chiffrements disponibles sur votre appareil.