gcloud compute scp <[[USER@]INSTANCE:]SRC...> <[[USER@]INSTANCE:]DEST>

Copy files to and from Google Compute Engine virtual machines via scp

Arguments

NameDescription
[[USER@]INSTANCE:]SRCSpecifies the files to copy
[[USER@]INSTANCE:]DESTSpecifies a destination for the source files

Options

NameDescription
--account <ACCOUNT>Google Cloud Platform user account to use for invocation. Overrides the default *core/account* property value for this command invocation
--billing-project <BILLING_PROJECT>The Google Cloud Platform project that will be charged quota for operations performed in gcloud. If you need to operate on one project, but need quota against a different project, you can use this flag to specify the billing project. If both `billing/quota_project` and `--billing-project` are specified, `--billing-project` takes precedence. Run `$ gcloud config set --help` to see more information about `billing/quota_project`
--compressEnable compression
--configuration <CONFIGURATION>The configuration to use for this command invocation. For more information on how to use configurations, run: `gcloud topic configurations`. You can also use the CLOUDSDK_ACTIVE_CONFIG_NAME environment variable to set the equivalent of this flag for a terminal session
--dry-runPrint the equivalent scp/ssh command that would be run to stdout, instead of executing it
--flags-file <YAML_FILE>A YAML or JSON file that specifies a *--flag*:*value* dictionary. Useful for specifying complex flag values with special characters that work with any command interpreter. Additionally, each *--flags-file* arg is replaced by its constituent flags. See $ gcloud topic flags-file for more information
--flatten <KEY>Flatten _name_[] output resource slices in _KEY_ into separate records for each item in each slice. Multiple keys and slices may be specified. This also flattens keys for *--format* and *--filter*. For example, *--flatten=abc.def* flattens *abc.def[].ghi* references to *abc.def.ghi*. A resource record containing *abc.def[]* with N elements will expand to N records in the flattened output. This flag interacts with other flags that are applied in this order: *--flatten*, *--sort-by*, *--filter*, *--limit*
--force-key-file-overwriteIf enabled, the gcloud command-line tool will regenerate and overwrite the files associated with a broken SSH key without asking for confirmation in both interactive and non-interactive environments. + If disabled, the files associated with a broken SSH key will not be regenerated and will fail in both interactive and non-interactive environments
--format <FORMAT>Set the format for printing command output resources. The default is a command-specific human-friendly output format. The supported formats are: `config`, `csv`, `default`, `diff`, `disable`, `flattened`, `get`, `json`, `list`, `multi`, `none`, `object`, `table`, `text`, `value`, `yaml`. For more details run $ gcloud topic formats
--helpDisplay detailed help
--impersonate-service-account <SERVICE_ACCOUNT_EMAIL>For this gcloud invocation, all API requests will be made as the given service account instead of the currently selected account. This is done without needing to create, download, and activate a key for the account. In order to perform operations as the service account, your currently selected account must have an IAM role that includes the iam.serviceAccounts.getAccessToken permission for the service account. The roles/iam.serviceAccountTokenCreator role has this permission or you may create a custom role. Overrides the default *auth/impersonate_service_account* property value for this command invocation
--internal-ipConnect to instances using their internal IP addresses rather than their external IP addresses. Use this to connect from one instance to another on the same VPC network, over a VPN connection, or between two peered VPC networks. + For this connection to work, you must configure your networks and firewall to allow SSH connections to the internal IP address of the instance to which you want to connect. + To learn how to use this flag, see [](https://cloud.google.com/compute/docs/instances/connecting-advanced#sshbetweeninstances)
--log-httpLog all HTTP server requests and responses to stderr. Overrides the default *core/log_http* property value for this command invocation
--plainSuppress the automatic addition of *ssh(1)*/*scp(1)* flags. This flag is useful if you want to take care of authentication yourself or use specific ssh/scp features
--port <PORT>The port to connect to
--project <PROJECT_ID>The Google Cloud Platform project ID to use for this invocation. If omitted, then the current project is assumed; the current project can be listed using `gcloud config list --format='text(core.project)'` and can be set using `gcloud config set project PROJECTID`. + `--project` and its fallback `core/project` property play two roles in the invocation. It specifies the project of the resource to operate on. It also specifies the project for API enablement check, quota, and billing. To specify a different project for quota and billing, use `--billing-project` or `billing/quota_project` property
--quietDisable all interactive prompts when running gcloud commands. If input is required, defaults will be used, or an error will be raised. Overrides the default core/disable_prompts property value for this command invocation. This is equivalent to setting the environment variable `CLOUDSDK_CORE_DISABLE_PROMPTS` to 1
--recurseUpload directories recursively
--scp-flag <SCP_FLAG>Extra flag to be sent to scp. This flag may be repeated
--ssh-key-expiration <SSH_KEY_EXPIRATION>The time when the ssh key will be valid until, such as "2017-08-29T18:52:51.142Z." This is only valid if the instance is not using OS Login. See $ gcloud topic datetimes for information on time formats
--ssh-key-expire-after <SSH_KEY_EXPIRE_AFTER>The maximum length of time an SSH key is valid for once created and installed, e.g. 2m for 2 minutes. See $ gcloud topic datetimes for information on duration formats
--ssh-key-file <SSH_KEY_FILE>The path to the SSH key file. By default, this is ``~/.ssh/google_compute_engine''
--strict-host-key-checking <STRICT_HOST_KEY_CHECKING>Override the default behavior of StrictHostKeyChecking for the connection. By default, StrictHostKeyChecking is set to 'no' the first time you connect to an instance, and will be set to 'yes' for all subsequent connections. _STRICT_HOST_KEY_CHECKING_ must be one of: *yes*, *no*, *ask*
--trace-token <TRACE_TOKEN>Token used to route traces of service requests for investigation of issues. Overrides the default *core/trace_token* property value for this command invocation
--tunnel-through-iapTunnel the ssh connection through Cloud Identity-Aware Proxy for TCP forwarding. + To learn more, see the [IAP for TCP forwarding documentation](https://cloud.google.com/iap/docs/tcp-forwarding-overview)
--user-output-enabledPrint user intended output to the console. Overrides the default *core/user_output_enabled* property value for this command invocation. Use *--no-user-output-enabled* to disable
--verbosity <VERBOSITY>Override the default verbosity for this command. Overrides the default *core/verbosity* property value for this command invocation. _VERBOSITY_ must be one of: *debug*, *info*, *warning*, *error*, *critical*, *none*
--zone <ZONE>The zone of the instance to copy files to/from. + If not specified and the ``compute/zone'' property isn't set, you may be prompted to select a zone. + To avoid prompting when this flag is omitted, you can set the ``compute/zone'' property: + $ gcloud config set compute/zone ZONE + A list of zones can be fetched by running: + $ gcloud compute zones list + To unset the property, run: + $ gcloud config unset compute/zone + Alternatively, the zone can be stored in the environment variable ``CLOUDSDK_COMPUTE_ZONE''