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 cible.

Transfert à partir de Vers des instances 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 instance à l'aide de la fenêtre SSH dans le navigateur, vous pouvez utiliser cette connexion pour transférer des fichiers vers l'instance.

  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.

Pour transférer des fichiers via SCP, vous devez disposer d'une règle de pare-feu sur le réseau que votre instance 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 instance à 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 l'instance.

gcloud compute scp local-file-path instance-name:~

Remplacez l'élément suivant :

  • local-file-path : chemin d'accès au fichier sur votre poste de travail ;
  • instance-name : nom de l'instance.

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

gcloud compute scp --recurse instance-name:remote-dir local-dir

Remplacez l'élément suivant :

  • instance-name : nom de l'instance ;
  • remote-dir : chemin d'accès au répertoire de votre instance ;
  • 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 instance 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 instance ou projet Google Cloud Console, procurez-vous une paire de clés SSH et appliquez le fichier de clé publique SSH à votre projet ou à votre instance.

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

    Accéder à la page Instances

  3. Utilisez l'outil scp pour copier un fichier présent sur votre poste de travail vers le répertoire d'accueil de l'instance 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 l'élément suivant :

    • local-file-path : nom du fichier local que vous souhaitez importer ;
    • username : votre nom d'utilisateur ;
    • ip-address : adresse IP de votre instance.

Vous pouvez également copier des fichiers d'une instance vers votre poste de travail local en inversant les variables source et de destination. Pour cet exemple, copiez un fichier présent sur votre instance 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 l'élément suivant :

  • username : votre nom d'utilisateur ;
  • ip-address : adresse IP de votre instance ;
  • 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. Si vous n'avez pas encore appliqué de clé publique à votre projet ou instance Cloud Console, procurez-vous une paire de clés SSH et appliquez le fichier de clé publique SSH à votre projet ou à votre instance.

  2. Téléchargez et installez WinSCP. Les paramètres d'installation par défaut fonctionnent pour la plupart des utilisateurs.

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

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

    Accéder à la page Instances

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

    1. Définissez le champ File protocol (Protocole de fichier) sur SCP.

    2. Dans le champ Host name (Nom d'hôte), spécifiez l'adresse IP externe de l'instance à 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. 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 instance. Si la connexion est établie, la fenêtre ouvre votre système de fichiers local à gauche et le système de fichiers de l'instance à 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 instance.

  10. Vous n'êtes probablement pas autorisé à gérer la plupart des fichiers situés en dehors de votre répertoire d'accueil sur l'instance. Pour accéder au répertoire d'accueil de l'instance, saisissez votre répertoire d'accueil et username dans le champ du chemin d'accès de WinSCP.

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

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

Étape suivante