Transférer des fichiers vers des VM Linux


Pour transférer des fichiers vers des instances Compute Engine, différentes options sont disponibles en fonction du système d'exploitation de votre poste de travail et du système d'exploitation de l'instance de VM cible.

Transfert à partir de Vers les VM Linux
Linux ou macOS
Windows

Transférer des fichiers via Cloud Storage

Les buckets Cloud Storage peuvent constituer un point de transfert intermédiaire pratique entre vous et vos VM.

Cette méthode de transfert de fichiers fonctionne sur presque tous les systèmes d'exploitation et tous les types de VM, à condition que votre VM ait accès à votre bucket Cloud Storage via un compte de service ou via vos identifiants d'utilisateur personnels.

Importez vos fichiers depuis votre poste de travail vers un bucket Cloud Storage. Ensuite, téléchargez ces fichiers du bucket vers vos instances.

  1. Créez un bucket Cloud Storage ou identifiez un bucket existant que vous souhaitez utiliser pour transférer des fichiers.
  2. Depuis votre poste de travail, importez des fichiers dans le bucket.
  3. Connectez-vous à votre VM à l'aide de SSH.
  4. Sur votre instance, téléchargez des fichiers depuis le bucket.

Si vous devez transférer des fichiers dans l'autre sens, inversez le processus. Importez les fichiers depuis votre VM, puis téléchargez ces fichiers sur votre poste de travail.

Transférer des fichiers à l'aide du protocole SSH dans le navigateur

Si vous êtes en mesure d'établir une connexion SSH à une VM à l'aide de la fenêtre SSH depuis le navigateur, vous pouvez utiliser cette connexion pour transférer des fichiers vers la VM.

  1. Dans Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance à laquelle vous souhaitez vous connecter.

    bouton SSH en regard du nom de l'instance.

  3. Une fois la connexion établie, cliquez sur l'icône en forme de roue dentée en haut à droite de la fenêtre SSH depuis le navigateur, puis sélectionnez Upload file (Importer un fichier). Vous pouvez également sélectionner Download file (Télécharger un fichier) pour importer un fichier à partir de l'instance.
    Menu associé à l'icône en forme de roue dentée.
  4. La boîte de dialogue de transfert s'ouvre. Spécifiez le fichier que vous souhaitez transférer.

Si vous avez importé un fichier, il se trouve dans votre répertoire d'utilisateur /home/$USER.

Si vous avez téléchargé un fichier, il se trouve dans le dossier de téléchargement par défaut de votre poste de travail local.

Transférer des fichiers à l'aide de l'outil de ligne de commande gcloud

L'outil de ligne de commande gcloud fournit un utilitaire de transfert de fichiers SCP qui vous permet de créer une paire de clés SSH lors de votre première connexion. Votre clé privée est stockée sur votre appareil local et sa clé publique correspondante est copiée dans les métadonnées de projet ou d'instance de VM.

Pour transférer des fichiers via SCP, vous devez disposer d'une règle de pare-feu sur le réseau que votre VM utilise et qui autorise les connexions SSH sur le port 22. Vous pouvez vérifier que ces règles de pare-feu existent en recherchant une règle de pare-feu qui autorise les connexions tcp:22 dans Google Cloud Console.

Accéder aux règles de pare-feu

Si vous ne disposez pas d'une règle de pare-feu autorisant les connexions SSH sur le port 22, créez la règle de pare-feu.

Vous pouvez installer l'outil gcloud et l'utiliser pour copier des fichiers et des répertoires sur votre VM à l'aide de la commande scp.

L'exemple suivant copie un fichier présent sur votre poste de travail vers le répertoire d'accueil de la VM.

gcloud compute scp LOCAL_FILE_PATH VM_NAME:~

Remplacez les éléments suivants :

  • LOCAL_FILE_PATH : chemin d'accès au fichier sur votre poste de travail
  • VM_NAME : nom de votre VM

Vous pouvez également copier des fichiers et des répertoires d'une VM vers votre poste de travail local. L'exemple suivant copie récursivement un répertoire présent sur votre VM (la source) vers votre poste de travail local (la destination).

gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_DIR

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM
  • REMOTE_DIR : chemin d'accès au répertoire de votre VM
  • LOCAL_DIR : chemin d'accès où vous souhaitez placer le répertoire sur votre poste de travail

Pour plus d'informations, consultez la documentation de référence de gcloud compute scp.

Transférer des fichiers à l'aide de SCP sur des postes de travail Linux et macOS

L'outil de ligne de commande scp fonctionne de la même manière que gcloud compute scp, mais vous devez gérer manuellement vos clés SSH.

Pour transférer des fichiers via SCP, vous devez disposer d'une règle de pare-feu sur le réseau que votre VM utilise et qui autorise les connexions SSH sur le port 22. Vous pouvez vérifier que ces règles de pare-feu existent en recherchant une règle de pare-feu qui autorise les connexions tcp:22 dans Google Cloud Console.

Accéder aux règles de pare-feu

Si vous ne disposez pas d'une règle de pare-feu autorisant les connexions SSH sur le port 22, créez la règle de pare-feu.

L'outil scp utilise les mêmes fichiers de clés que ceux que vous utilisez pour vous connecter à vos instances à l'aide du client SSH standard.

  1. Si vous n'avez pas encore appliqué de clé publique à votre projet Google Cloud Console ou à votre instance de VM, procurez-vous une paire de clés SSH et appliquez le fichier de clé publique SSH à votre projet ou à votre instance de VM.

  2. Recherchez l'adresse IP externe de la VM à laquelle vous souhaitez envoyer des fichiers. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  3. Utilisez l'outil scp pour copier un fichier présent sur votre poste de travail vers le répertoire d'accueil de la VM cible. Dans cet exemple, la clé privée est située à l'adresse ~/.ssh/my-ssh-key.

    scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IP_ADDRESS:~
    

    Remplacez les éléments suivants :

    • LOCAL_FILE_PATH : nom du fichier local que vous souhaitez importer
    • USERNAME : votre nom d'utilisateur
    • IP-ADDRESS : adresse IP externe de votre VM

Vous pouvez également copier des fichiers d'une VM vers votre poste de travail local en inversant les variables source et de destination. Pour cet exemple, copiez un fichier présent sur votre VM vers un chemin d'accès de votre poste de travail.

scp -i ~/.ssh/my-ssh-key USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH

Remplacez les éléments suivants :

  • USERNAME : votre nom d'utilisateur
  • IP_ADDRESS : adresse IP externe de votre VM
  • REMOTE_FILE_PATH : nom du fichier distant que vous souhaitez télécharger
  • LOCAL_FILE_PATH : emplacement sur le poste de travail où vous souhaitez télécharger le fichier

Transférer des fichiers à l'aide de WinSCP sur des postes de travail Windows

Sur les postes de travail Windows, le client WinSCP vous permet de gérer les fichiers de vos instances via une interface graphique d'explorateur de fichiers.

WinSCP utilise les mêmes fichiers de clés que vous utilisez pour vous connecter à vos instances à l'aide de PuTTY.

  1. Procédez comme suit si vous n'avez pas configuré l'authentification SSH basée sur des clés pour votre instance :

    1. Créez une paire de clés SSH.

    2. Ajoutez votre clé SSH publique aux métadonnées de votre projet ou à celles de votre VM. Pour en savoir plus, consultez la section Ajouter ou supprimer des clés SSH publiques à l'échelle du projet ou Ajouter ou supprimer des clés SSH publiques au niveau de l'instance.

  2. Recherchez l'adresse IP externe de la VM à laquelle vous souhaitez envoyer des fichiers.

    1. Dans Google Cloud Console, accédez à la page Instances de VM.

      Accéder à la page Instances de VM

    2. Dans la liste des VM, recherchez l'adresse IP externe dans la colonne Adresse IP externe de votre VM.
  3. Téléchargez et installez WinSCP. Les paramètres d'installation par défaut fonctionnent pour la plupart des utilisateurs.

  4. Démarrez le programme WinSCP. Une fenêtre dans laquelle vous pouvez configurer vos paramètres de connexion s'ouvre.

  5. Dans WinSCP, configurez vos paramètres de connexion.

    1. Dans le champ File protocol (Protocole de fichier), sélectionnez SCP comme protocole de transfert de fichiers.

    2. Dans le champ Host name (Nom d'hôte), spécifiez l'adresse IP externe de la VM à laquelle vous souhaitez vous connecter.

    3. Dans le champ User name (Nom d'utilisateur), spécifiez le nom d'utilisateur Google que vous utilisez pour accéder à votre projet. Dans cet exemple, l'utilisateur est example-user.

      Définir le protocole de fichier sur "SCP", le nom d'hôte sur "104.196.31.103" et le nom d'utilisateur sur "example-user".

  6. Cliquez sur la liste déroulante Advanced (Avancé) pour ouvrir les paramètres avancés, puis accédez à SSH > Authentication (Authentification).

  7. Dans la zone Private key file (Fichier de clé privée), spécifiez le chemin d'accès au fichier de clé privée de la paire de clés SSH que vous avez créée pour la VM. Si vous ne connaissez pas le chemin d'accès de votre clé privée SSH, consultez la section Trouver une clé SSH. Dans cet exemple, le fichier de clé est my-ssh-key.ppk.

    Définissez le fichier de clé privée sur "my-ssh-key.ppk" dans la boîte de dialogue des paramètres de site avancés.

  8. Cliquez sur OK pour enregistrer les paramètres avancés.

  9. Cliquez sur Connexion pour vous connecter à votre VM. Si la connexion est établie, la fenêtre ouvre votre système de fichiers local à gauche et le système de fichiers de la VM à droite. Vous pouvez accéder à différents répertoires dans ces systèmes de fichiers et faire glisser les fichiers pour les transférer vers ou depuis votre VM.

  10. Vous n'êtes probablement pas autorisé à gérer la plupart des fichiers situés en dehors du répertoire d'accueil de la VM. Accédez au répertoire d'accueil de la VM :

    /home/USERNAME
    
  11. Utilisez l'interface WinSCP pour déplacer des fichiers entre votre poste de travail et la VM.

  12. Une fois que vous avez copié vos fichiers sur la VM, connectez-vous à votre instance pour pouvoir exécuter ou déplacer des fichiers avec des autorisations sudo complètes.

Étape suivante