--recurse错误:权限不足:请求的身份验证范围不足

时间:2019-02-12 17:57:09

标签: terminal google-cloud-platform gcloud

我正在尝试使用以下命令将目录从虚拟机复制到本地计算机的桌面:

gcloud compute scp --recurse instance-1:~/directory ~/Desktop/

我尝试使用“ gcloud auth login”进行重新认证,但仍然显示

ERROR: (gcloud.compute.scp) Could not fetch resource:
 - Insufficient Permission: Request had insufficient authentication scopes.

3 个答案:

答案 0 :(得分:5)

尝试从尝试运行gcloud命令的计算机上运行“ gcloud auth登录”。

有关更多信息have a look at this old post,他们正在报告同一问题。

答案 1 :(得分:2)

您将需要roles/compute.instanceAdmin.v1才能将SSH或SCP用于实例中要使用的凭据。最简单的方法是将Compute Instance Admin添加到您的凭据中。

要查看您使用的凭据,请执行gcloud auth list。该帐户的左列将带有星号。

要弄清您拥有什么权限,请执行gcloud projects get-iam-policy PROJECT_ID

答案 2 :(得分:0)

提供完整的代码以更好地理解

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());
}