Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Linux
Questo documento descrive come connettersi alle istanze di macchine virtuali (VM) Linux
come utente root, il che abilita i privilegi di super user sulla VM. Per impostazione predefinita,
le VM Compute Engine create da immagini pubbliche
e la maggior parte dei sistemi operativi comuni non consentono l'accesso root con una password tramite
SSH.
Un'alternativa per connettersi alle VM come utente root è eseguire i comandi tramite
sudo, che consigliamo al posto di abilitare l'accesso root.
Sistemi operativi supportati
Questi metodi di connessione sono supportati per tutte le
immagini Linux pubbliche disponibili su
Compute Engine. Per le immagini Fedora CoreOS, devi
configurare l'accesso SSH
prima di poter utilizzare questi metodi.
Abilita l'accesso root
Per impostazione predefinita, le VM Compute Engine impostano il parametro PermitRootLogin su
prohibit-password o no nel file di configurazione SSH
/etc/ssh/sshd_config. Abilita l'accesso root seguendo le istruzioni per la tua VM:
VM con OS Login
Abilita l'accesso root nel seguente modo:
Crea una chiave SSH. Copia la
chiave SSH pubblica per utilizzarla in un secondo momento.
Sostituisci PermitRootLogin no con PermitRootLogin prohibit-password nel
file /etc/ssh/sshd_config, eseguendo il seguente comando:
sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
Crea la directory /root/.ssh utilizzando il seguente comando:
sudo mkdir /root/.ssh
Imposta le autorizzazioni per la directory .ssh eseguendo il seguente comando:
sudo chmod 700 /root/.ssh
Crea il file authorized_keys eseguendo il seguente
comando:
sudo touch /root/.ssh/authorized_keys
Imposta le autorizzazioni sul file authorized_keys eseguendo il seguente
comando:
sudo chmod 600 /root/.ssh/authorized_keys
Incolla la chiave SSH pubblica nel file /root/.ssh/authorized_keys.
Riavvia il daemon sshd riavviando la VM o eseguendo il comando
di riavvio per il sistema operativo della VM. Attendi il riavvio della VM, quindi
connettiti come utente root.
Sostituisci PermitRootLogin no con PermitRootLogin prohibit-password nel
file /etc/ssh/sshd_config, eseguendo il seguente comando:
sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
Riavvia il daemon sshd riavviando la VM o eseguendo il comando
di riavvio per il sistema operativo della VM. Attendi il riavvio della VM, quindi
connettiti come utente root.
Connettiti come utente root
Dopo aver abilitato l'accesso root, connettiti alla VM come utente root. Se
ti connetti a una VM in cui è abilitato OS Login, devi utilizzare strumenti di terze parti
invece di gcloud CLI.
gcloud
Nota: devi utilizzare strumenti di terze parti per connetterti come utente root se nella VM
a cui ti connetti è abilitato OS Login.
Connettiti alle VM come utente root utilizzando il
comando gcloud compute ssh con
root@ specificato prima del nome della VM:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a
Cloud Shell
session starts and displays a command-line prompt. Cloud Shell is a shell environment
with the Google Cloud CLI
already installed and with values already set for
your current project. It can take a few seconds for the session to initialize.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eThis document details how to enable and use root login for Linux virtual machines (VMs) on Compute Engine, although using \u003ccode\u003esudo\u003c/code\u003e is recommended as a more secure alternative.\u003c/p\u003e\n"],["\u003cp\u003eBy default, Compute Engine VMs prevent root login via password over SSH, requiring modifications to the \u003ccode\u003e/etc/ssh/sshd_config\u003c/code\u003e file, setting \u003ccode\u003ePermitRootLogin\u003c/code\u003e to \u003ccode\u003eprohibit-password\u003c/code\u003e, and creating and adding keys to the \u003ccode\u003eauthorized_keys\u003c/code\u003e file for root.\u003c/p\u003e\n"],["\u003cp\u003eThe process for enabling root login differs slightly between OS Login and Non-OS Login VMs, with OS Login VMs requiring the creation of an SSH key, while Non-OS Login VMs need to change SSH configuration settings.\u003c/p\u003e\n"],["\u003cp\u003eConnecting as the root user can be done via the \u003ccode\u003egcloud compute ssh\u003c/code\u003e command for VMs that do not have OS Login enabled, or through third-party tools for both OS Login and Non-OS Login VMs by using the root user key.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting SSH connections and managing access and file transfers to VMs are also linked, and are relevant to the overall context of connecting to Linux VMs.\u003c/p\u003e\n"]]],[],null,["# Connect to Linux VMs as the root user\n\nLinux\n\n*** ** * ** ***\n\nThis document describes how to connect to Linux virtual machine (VM) instances\nas the root user, which enables superuser privileges on the VM. By default,\nCompute Engine VMs built from [public images](/compute/docs/images#os-details)\nand most common operating systems don't allow root login with a password over\nSSH.\n\nAn alternative to connecting to VMs as the root user is to run commands through\n`sudo`, which we recommend instead of enabling root login.\n\nSupported operating systems\n---------------------------\n\nThese connection methods are supported for all\n[public Linux images](/compute/docs/images/os-details) that are available on\nCompute Engine. For Fedora CoreOS images, you must\n[set up SSH access](https://docs.fedoraproject.org/en-US/fedora-coreos/tutorial-containers/)\nbefore you can use these methods.\n\nEnable root login\n-----------------\n\n| **Note:** We recommend running commands through `sudo` instead of enabling root login.\n\nBy default, Compute Engine VMs, set the `PermitRootLogin` parameter to\n`prohibit-password` or `no` in the `/etc/ssh/sshd_config` SSH configuration\nfile. Enable root login by following the instructions for your VM: \n\n### OS Login VMs\n\nEnable root login by doing the following:\n\n1. [Create an SSH key](/compute/docs/connect/create-ssh-keys). Copy the\n public SSH key for later.\n\n2. [Connect to the VM](/compute/docs/instances/connecting-to-instance) as\n you usually do.\n\n3. Change `PermitRootLogin no` to `PermitRootLogin prohibit-password` in the\n `/etc/ssh/sshd_config` file, by running the following command:\n\n ```\n sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config\n ```\n4. Create the `/root/.ssh` directory using the following command:\n\n ```\n sudo mkdir /root/.ssh\n ```\n5. Set permissions on the `.ssh` directory, by running the following command:\n\n ```\n sudo chmod 700 /root/.ssh\n ```\n6. Create the `authorized_keys` file by running the following\n command:\n\n ```\n sudo touch /root/.ssh/authorized_keys\n ```\n7. Set permissions on the `authorized_keys` file, by running the following\n command:\n\n ```\n sudo chmod 600 /root/.ssh/authorized_keys\n ```\n8. Paste the public SSH key into the `/root/.ssh/authorized_keys` file.\n\n9. Restart the `sshd` daemon by restarting the VM, or running the restart\n command for your VM's operating system. Wait for the VM to reboot, then\n connect as the root user.\n\n### Non-OS Login VMs\n\nEnable root login by doing the following:\n\n1. [Connect to the VM](/compute/docs/instances/connecting-to-instance) as\n you usually do.\n\n2. Change `PermitRootLogin no` to `PermitRootLogin prohibit-password` in the\n `/etc/ssh/sshd_config` file, by running the following command:\n\n ```\n sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config\n ```\n3. Restart the `sshd` daemon by restarting the VM, or running the restart\n command for your VM's operating system. Wait for the VM to reboot, then\n connect as the root user.\n\nConnect as the root user\n------------------------\n\nAfter you enable root login, connect to the VM as the root user. If\nyou're connecting to a VM that has OS Login enabled, you must use third-party\ntools instead of the gcloud CLI. \n\n### gcloud\n\n\nNote: You must use third-party tools to connect as the root user if the VM\nyou're connecting to has OS Login enabled.\n\nConnect to VMs as the root user by using the\n[`gcloud compute ssh` command](/sdk/gcloud/reference/compute/ssh) with\n`root@` specified before the VM name:\n\n1. In the Google Cloud console, activate Cloud Shell.\n\n [Activate Cloud Shell](https://console.cloud.google.com/?cloudshell=true)\n\n\n At the bottom of the Google Cloud console, a\n [Cloud Shell](/shell/docs/how-cloud-shell-works)\n session starts and displays a command-line prompt. Cloud Shell is a shell environment\n with the Google Cloud CLI\n already installed and with values already set for\n your current project. It can take a few seconds for the session to initialize.\n2. Connect to the VM by running the following command:\n\n ```\n gcloud compute ssh \\\n --project=PROJECT_ID \\\n --zone=ZONE \\\n root@VM_NAME\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of the project that contains the VM\n - \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: the name of the zone in which the VM is located\n - \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e: the name of the VM\n\n### Third-party tools\n\n\nConnect to VMs as the root user by following the instructions for your VM:\n\n- **OS Login VMs**\n\n [Connect using third-party tools](/compute/docs/connect/ssh-using-third-party-tools)\n and specify the following:\n - **Private key** : the private key that corresponds with the public key that you added to the `authorized_keys` file\n - **Username** : the username must be `root`\n- **Non-OS Login VMs**\n\n 1. [Create an SSH key](/compute/docs/connect/create-ssh-keys) for the\n root user. The username for the key must be `root`.\n\n 2. [Add the key for the root user to metadata](/compute/docs/connect/add-ssh-keys#metadata).\n\n 3. [Connect using third-party tools](/compute/docs/connect/ssh-using-third-party-tools)\n and specify the following:\n\n - **Private key**: the private key for the root user\n\n - **Username** : the username must be `root`\n\nTroubleshooting\n---------------\n\nTo find methods for diagnosing and resolving failed SSH connections, see\n[Troubleshooting SSH](/compute/docs/troubleshooting/troubleshooting-ssh).\n\nWhat's next\n-----------\n\n- Learn how to [manage access to VMs](/compute/docs/instances/access-overview).\n- Learn how to [transfer files to VMs](/compute/docs/instances/transfer-files).\n- Learn how [SSH connections to Linux VMs](/compute/docs/instances/ssh) work on Compute Engine."]]