J'essaie de copier un répertoire de mon VM sur le bureau de ma machine locale avec la commande suivante:
gcloud compute scp --recurse instance-1:~/directory ~/Desktop/
J'ai essayé de me réauthentifier avec "gcloud auth login" mais il dit toujours
ERROR: (gcloud.compute.scp) Could not fetch resource:
- Insufficient Permission: Request had insufficient authentication scopes.
Essayez d'exécuter une "connexion d'authentification gcloud" à partir de la machine sur laquelle vous essayez d'exécuter la commande gcloud.
Pour plus d'informations jetez un œil à cet ancien article , ils signalent le même problème.
Tu auras besoin de roles/compute.instanceAdmin.v1
pour utiliser SSH ou SCP sur une instance des informations d'identification que vous utilisez. La méthode la plus simple consiste à ajouter Compute Instance Admin
à vos informations d'identification.
Pour voir les informations d'identification que vous utilisez, exécutez gcloud auth list
. Le compte aura un astérisque dans la colonne de gauche.
Pour savoir quelles autorisations vous avez exécuter gcloud projects get-iam-policy PROJECT_ID
Fournir un code complet pour une meilleure compréhension
private static void upload() throws GeneralSecurityException, IOException {
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Drive driveService = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName(APPLICATION_NAME)
.build();
File fileMetadata = new File();
fileMetadata.setName("My Report");
fileMetadata.setMimeType("application/vnd.google-apps.spreadsheet");
Java.io.File filePath = new Java.io.File("/exportData.csv");
FileContent mediaContent = new FileContent("text/csv", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
.setFields("id")
.execute();
System.out.println("File ID: " + file.getId());
}