GNU/Linux >> Tutoriels Linux >  >> Linux

4 façons de transférer des fichiers entre des systèmes distants et locaux via SSH

Tôt ou tard, vous vous retrouverez dans une situation où vous devrez télécharger le fichier sur le serveur distant via SSH ou copier un fichier à partir de celui-ci.

Il existe différentes manières de transférer des fichiers via SSH. Je vais discuter des méthodes suivantes ici :

  1. scp :ancienne commande obsolète
  2. rsync :commande populaire pour la synchronisation de fichiers
  3. sshfs :montage d'un répertoire distant via SSH
  4. clients sftp :outil graphique pour accéder aux fichiers via SFTP

Pour un transfert de fichier réussi via SSH, vous devez

  • pour avoir un accès SSH entre les deux machines
  • pour connaître le nom d'utilisateur et le mot de passe sur la machine distante
  • Adresse IP ou nom d'hôte (sur le même sous-réseau) de la machine distante

Cela dit, voyons les méthodes de copie de fichiers entre des systèmes distants via SSH.

Méthode 1 :Utiliser la commande scp pour copier des fichiers via SSH

J'ai lu que scp allait être obsolète. Pourtant, c'est mon outil préféré pour transférer des fichiers entre systèmes via SSH. Pourquoi? Parce que sa syntaxe est similaire à la commande cp.

Voyons comment utiliser la commande scp.

Copier les fichiers de la machine distante vers votre machine locale

Voici le scénario. Vous souhaitez copier des fichiers du système Linux distant vers le système actuellement connecté.

Voici une syntaxe générique qui copie le fichier du répertoire personnel de l'utilisateur sur le système distant vers le répertoire actuel de votre système connecté localement.

scp [email protected]_address:/home/username/filename .

Voyez-vous la similitude avec la commande cp ? C'est presque la même chose sauf que vous devez spécifier le nom d'utilisateur et l'adresse IP avec deux-points (:).

Maintenant, laissez-moi vous montrer un exemple concret de cette commande.

Dans l'exemple ci-dessus, j'ai copié le fichier remote.txt depuis le /home/abhishek/my_file répertoire sur le système distant vers le répertoire actuel de la machine locale.

Cela devrait vous indiquer que vous devez connaître l'emplacement exact du fichier sur le système distant. La complétion de tabulation ne fonctionne pas sur les systèmes distants.

Copier des fichiers de votre machine locale vers la machine distante

Le scénario est légèrement modifié ici. Dans celui-ci, vous envoyez un fichier local au système distant via SSH en utilisant scp.

Il s'agit d'une syntaxe générique qui copiera le nom du fichier dans le répertoire personnel du nom d'utilisateur sur le système distant.

scp filename [email protected]_address:/home/username

Dans l'exemple ci-dessus, j'ai copié local.txt fichier du répertoire courant vers le répertoire personnel de l'utilisateur abhishek sur le système distant.

Ensuite, je me suis connecté au système distant pour montrer que le fichier a bien été copié.

Vous pouvez également copier des répertoires

Rappelez-vous que je vous ai dit que j'aimais scp à cause de sa similitude avec la commande cp ?

Comme la commande cp, vous pouvez également utiliser scp pour copier le répertoire via SSH. La syntaxe est également similaire à la commande cp. Il suffit d'utiliser le -r option.

scp -r source_dir [email protected]_address:/home/username/target_dir

Vous pouvez faire beaucoup plus avec. Lisez d'autres exemples de commande scp dans ce tutoriel :

Méthode 2 :Utiliser rsync pour copier des fichiers et des répertoires via SSH

Étant donné que scp est obsolète, rsync est le meilleur outil suivant pour copier des fichiers entre un système distant via SSH. En fait, c'est mieux que scp à bien des égards.

La syntaxe de la commande est la même que scp. Les anciennes versions de rsync devaient utiliser rsync -e ssh mais ce n'est plus le cas.

Copier les fichiers de la machine distante vers votre machine locale

Supposons que vous souhaitiez copier un fichier du répertoire personnel de l'utilisateur sur le système distant vers le répertoire actuel de votre système connecté localement.

rsync [email protected]_address:/home/username/filename .

Prenons le même exemple que vous avez vu avec scp. Je copie le fichier remote.txt depuis le /home/abhishek/my_file répertoire sur le système distant vers le répertoire actuel de la machine locale.

Copier des fichiers de votre machine locale vers la machine distante

Voici une syntaxe générique qui copiera le fichier dans le répertoire personnel du nom d'utilisateur sur le système distant.

rsync filename [email protected]_address:/home/username

Il est temps de voir l'exemple du monde réel. Je copie local.txt fichier du répertoire courant vers le répertoire personnel de l'utilisateur abhishek sur le système distant.

Que diriez-vous de copier des répertoires avec rsync ?

C'est le même. Utilisez simplement -r option avec rsync pour copier le répertoire entier sur SSH entre les systèmes distants.

rsync -r source_dir [email protected]_address:/home/username/target_dir

Jetez un oeil à cet exemple. Je copie l'intégralité du répertoire my_file du système distant vers le système local.

rsync est un outil polyvalent. Il s'agit essentiellement d'un outil de "synchronisation récursive" du contenu entre deux répertoires et très populaire pour effectuer des sauvegardes automatisées.

Méthode 3 :Utilisation de SSHFS pour accéder aux fichiers d'un système distant via SSH

Il existe également SSHFS (SSH Filesystem) qui peut être utilisé pour accéder à des fichiers et répertoires distants. Cependant, ce n'est pas très pratique uniquement pour copier des fichiers.

Dans cette méthode, vous montez le répertoire distant sur votre système local. Une fois monté, vous pouvez copier des fichiers entre le répertoire monté et le système local.

Vous devrez peut-être d'abord installer sshfs sur votre système local à l'aide du gestionnaire de packages de votre distribution.

Sur Debian et Ubuntu, vous pouvez utiliser la commande suivante :

sudo apt install sshfs

Une fois que vous avez installé sshfs sur votre système, vous pouvez l'utiliser pour monter le répertoire distant. Il serait préférable de créer un répertoire dédié pour le point de montage.

mkdir mount_dir

Montez maintenant le répertoire souhaité sur la machine distante de cette manière :

sshfs [email protected]_address:path_to_dir mount_dir

Une fois monté, vous pouvez copier des fichiers dans ce répertoire ou à partir de ce répertoire comme s'il se trouvait sur votre machine locale elle-même.

cp local_file mount_dir

N'oubliez pas que vous avez monté ce fichier. Une fois votre travail terminé, vous devez également le démonter :

umount mount_dir

Voici un exemple où j'ai monté le my_file répertoire du système distant vers le remote_dir répertoire sur le système local. J'ai copié le remote.txt fichier sur le système local, puis démontez le répertoire.

Méthode 4 :Utiliser un client SFTP basé sur une interface graphique pour transférer des fichiers entre des systèmes distants

En dernier recours, vous pouvez utiliser un client FTP pour transférer des fichiers entre les systèmes distants et locaux.

FileZilla est l'un des clients FTP multiplateformes les plus populaires. Vous pouvez facilement installer sur votre système local.

Une fois installé, allez dans Fichier->Gestionnaire de site et ajoutez les détails du système distant comme l'adresse IP, le numéro de port SSH, le nom d'utilisateur et le mot de passe.

Une fois connecté, vous pouvez voir une fenêtre divisée qui affiche le système de fichiers local à gauche et le système de fichiers distant à droite.

Pour transférer le fichier, faites glisser et déposez les fichiers de gauche à droite ou de droite à gauche. Une barre de progression apparaît en bas.

Quelle méthode préférez-vous ?

Très bien! J'ai montré diverses méthodes de ligne de commande et d'interface graphique pouvant être utilisées pour copier des fichiers via SSH.

C'est maintenant à vous de décider quelle méthode utiliser ici. Commentez votre méthode préférée pour transférer des fichiers via SSH.


Linux
  1. Comment transférer des fichiers entre des machines locales et distantes à l'aide du protocole SFTP

  2. Comment télécharger et charger des fichiers via SSH

  3. Utilisation du protocole SFTP pour transférer des fichiers entre des machines locales et distantes

  4. Copier des fichiers avec SCP et Rsync

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

Comment transférer des fichiers avec Rsync sur SSH

SSHFS :comment monter des systèmes de fichiers distants via SSH

Transférer des fichiers entre Windows et Linux à l'aide de votre réseau local

Comment transférer des fichiers avec Rsync sur SSH

Transférer des fichiers et des dossiers entre ordinateurs avec Croc

4 façons de transférer des fichiers et des répertoires sous Linux