Copier des fichiers via SSH ⋆ ALexHost SRL

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Use code at checkout:

Skills
18.12.2024

Copier des fichiers via SSH

SSH (Secure Shell) est un protocole largement utilisé pour accéder à des serveurs distants et les gérer en toute sécurité au moyen d’une connexion cryptée. L’une des tâches les plus courantes avec SSH consiste à copier des fichiers entre votre machine locale et un serveur distant ou entre deux serveurs distants.

Dans cet article, nous allons explorer les différentes façons de copier des fichiers via SSH, notamment en utilisant SCP (Secure Copy Protocol), rsync et d’autres méthodes.


Pourquoi utiliser SSH pour les transferts de fichiers ?

L’utilisation de SSH pour transférer des fichiers présente plusieurs avantages :

  • Sécurité : SSH crypte à la fois la commande et les données pendant la transmission, ce qui garantit la protection des informations sensibles.
  • Efficacité : SSH est rapide et fiable, ce qui vous permet de transférer des fichiers directement entre les systèmes sans avoir à vous connecter séparément.
  • Automatisation : SSH peut être intégré dans des scripts, ce qui permet d’automatiser le transfert de fichiers entre des serveurs ou des machines locales.

1. Copier des fichiers avec SCP (Secure Copy Protocol)

SCP est l’un des outils les plus populaires pour copier des fichiers en toute sécurité via SSH. Il vous permet de transférer des fichiers d’une machine locale vers un serveur distant, d’un serveur distant vers votre machine locale ou entre deux serveurs distants.

Syntaxe SCP de base :

scp [options] [source] [destination]

Exemple 1 : Copier un fichier d’une machine locale vers un serveur distant

scp /chemin/vers/local/fichier username@remote_host:/chemin/vers/remote/destination

Dans cet exemple :

  • /chemin/vers/fichier local est le chemin d’accès au fichier sur votre machine locale.
  • nom_d’utilisateur@hôte_distant est l’utilisateur SSH et le nom d’hôte ou l’adresse IP du serveur distant.
  • /chemin/vers/remote/destination est le chemin où le fichier sera stocké sur le serveur distant.

Exemple 2 : Copier un fichier d’un serveur distant vers une machine locale

scp nom_utilisateur@hôte_distant:/chemin/vers/à_distance/fichier /chemin/vers/local/destination

Dans ce cas, le fichier est transféré du serveur distant vers la machine locale.

Exemple 3 : Copier un répertoire de manière récursive

Pour copier un répertoire entier, utilisez l’option -r (récursif) :

scp -r /chemin/vers/local/répertoire username@remote_host:/chemin/vers/remote/destination

Cette opération transfère le répertoire et tout son contenu vers le serveur distant.

Options SCP utiles :

  • -P [port]: Spécifiez le port SSH s’il est différent du port par défaut (22).
  • -C : Active la compression pendant le transfert pour une copie plus rapide des fichiers.
  • -i [fichier_identite]: Utiliser une clé privée SSH spécifique pour l’authentification.

2. Copier des fichiers avec rsync

rsync est un autre outil puissant pour le transfert de fichiers via SSH. Il est souvent préféré pour les transferts de fichiers volumineux ou répétitifs, car il ne copie que les modifications entre la source et la destination, ce qui permet d’économiser du temps et de la bande passante.

Syntaxe de base de rsync :

rsync [options] [source] [destination]

Exemple 1 : Copier un fichier d’une machine locale vers un serveur distant

rsync -avz /chemin/vers/local/fichier nom_d’utilisateur@hôte_distant:/chemin/vers/destination

Exemple 2 : Copier un répertoire avec rsync

rsync -avz /chemin/vers/répertoire local/nomutilisateur@hôte_républicain:/chemin/vers/républicain/destination/

Options rsync utiles :

  • -a : Mode archive, qui préserve les liens symboliques, les permissions, les horodatages et la propriété des fichiers.
  • -v : Mode verbeux pour afficher la progression du transfert.
  • -z : Active la compression pour accélérer le transfert.
  • –supprimer : Supprime les fichiers de la destination qui n’existent plus dans la source.
  • -e “ssh -p [port]” : Spécifie un port SSH personnalisé.

3. Copie de fichiers entre deux serveurs distants

En utilisant SSH, vous pouvez également copier des fichiers directement entre deux serveurs distants. SCP et rsync prennent tous deux en charge cette fonction.

Exemple 1 : Copier des fichiers entre deux serveurs distants avec SCP

scp nom_utilisateur1@hôte_distant1:/chemin/vers/fichier nom_utilisateur2@hôte_distant2:/chemin/vers/destination

Exemple 2 : Copier des fichiers entre deux serveurs distants avec rsync

rsync -avz nom_d’utilisateur1@hôte_distant1:/chemin/vers/fichier nom_d’utilisateur2@hôte_distant2:/chemin/vers/destination

Cette méthode est particulièrement utile pour transférer des fichiers entre serveurs sans avoir à les télécharger d’abord sur votre machine locale.


4. Copier des fichiers avec SFTP (SSH File Transfer Protocol)

SFTP est une autre méthode permettant de transférer des fichiers en toute sécurité via SSH. Elle est similaire à FTP, mais utilise SSH pour assurer le cryptage. SFTP est généralement utilisé dans le cadre de sessions interactives, mais il peut également être automatisé.

Utiliser SFTP :

Pour démarrer une session SFTP, exécutez la commande suivante :

sftp nom_d’utilisateur@hôte_éloigné

Une fois dans l’invite SFTP, vous pouvez utiliser des commandes telles que :

  • put /path/to/local/file /path/to/remote/destination : Téléchargez un fichier de votre machine locale vers le serveur distant.
  • get /chemin/vers/remote/fichier /chemin/vers/local/destination : Télécharger un fichier du serveur distant vers votre machine locale.
  • mput et mget : Pour télécharger plusieurs fichiers à la fois.

Pour quitter la session SFTP, tapez exit ou quit.


5. Automatiser les transferts de fichiers avec des clés SSH

Pour les transferts de fichiers répétés, il est judicieux de mettre en place une authentification basée sur une clé SSH afin de ne pas avoir à saisir votre mot de passe à chaque fois.

Étape 1 : Générer une paire de clés SSH (si vous n’en avez pas)

Sur votre machine locale, exécutez :

ssh-keygen -t rsa

Cela générera une paire de clés publique et privée.

Étape 2 : Copier la clé publique sur le serveur distant

Utilisez la commande suivante pour copier votre clé publique sur le serveur distant :

ssh-copy-id username@remote_host

Vous pouvez désormais vous connecter et transférer des fichiers sans avoir à saisir de mot de passe, ce qui facilite l’automatisation.


Conclusion

La copie de fichiers via SSH est un moyen sûr et efficace de transférer des données entre votre machine locale et un serveur distant ou entre deux serveurs distants. Que vous utilisiez SCP, rsync ou SFTP, SSH offre des transferts de fichiers cryptés qui protègent vos données contre l’interception. Les outils tels que SCP sont simples pour les transferts ponctuels, tandis que rsync est idéal pour les tâches de synchronisation continues, en particulier pour les fichiers ou répertoires volumineux. La compréhension de ces outils vous aidera à gérer plus efficacement les transferts de fichiers, en particulier dans un environnement de serveur distant.

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Use code at checkout:

Skills