Add SSH key to instance metadata
Stay organized with collections
Save and categorize content based on your preferences.
Add a public SSH key to the instance metadata during VM creation.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License
, and code samples are licensed under the Apache 2.0 License
. For details, see the Google Developers Site Policies
. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis code sample demonstrates how to add public SSH keys to an instance's metadata during the creation of a Google Compute Engine virtual machine (VM).\u003c/p\u003e\n"],["\u003cp\u003eThe example uses Terraform to configure a VM with a specified name, machine type, zone, and boot disk image.\u003c/p\u003e\n"],["\u003cp\u003eThe VM's metadata includes a \u003ccode\u003essh-keys\u003c/code\u003e entry containing public SSH keys for user \u003ccode\u003edev\u003c/code\u003e and user \u003ccode\u003etest\u003c/code\u003e, which can be used to connect to the instance using SSH.\u003c/p\u003e\n"],["\u003cp\u003eThe configuration also sets up a local SSD scratch disk and connects the VM to the default network, utilizing \u003ccode\u003eaccess_config\u003c/code\u003e for external access.\u003c/p\u003e\n"]]],[],null,["# Add SSH key to instance metadata\n\nAdd a public SSH key to the instance metadata during VM creation.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Add SSH keys to VMs](/compute/docs/connect/add-ssh-keys)\n\nCode sample\n-----------\n\n### Terraform\n\n\nTo learn how to apply or remove a Terraform configuration, see\n[Basic Terraform commands](/docs/terraform/basic-commands).\n\n\nFor more information, see the\n[Terraform provider reference documentation](https://registry.terraform.io/providers/hashicorp/google/latest/docs).\n\n resource \"google_compute_instance\" \"default\" {\n name = \"my-vm\"\n machine_type = \"n1-standard-1\"\n zone = \"us-central1-a\"\n\n boot_disk {\n initialize_params {\n image = \"ubuntu-1404-trusty-v20160627\"\n }\n }\n\n # Local SSD disk\n scratch_disk {\n interface = \"SCSI\"\n }\n\n network_interface {\n network = \"default\"\n access_config {}\n }\n metadata = {\n \"ssh-keys\" = \u003c\u003cEOT\n dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev\n test:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT test\n EOT\n }\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=compute)."]]