本文档介绍如何以根用户身份连接到 Linux 虚拟机 (VM) 实例,以在虚拟机上启用超级用户权限。默认情况下,基于公共映像构建的 Compute Engine 虚拟机以及大多数常见操作系统都不允许使用密码通过 SSH 以根用户身份登录。
以根用户身份连接到虚拟机的替代方案是通过 sudo
运行命令,这才是我们建议的方法,而不要启用以根用户身份登录。
支持的操作系统
Compute Engine 上提供的所有公共 Linux 映像都支持这些连接方法。对于 Fedora CoreOS 映像,您必须先设置 SSH 访问,然后才能使用这些方法。
启用以根用户身份登录
默认情况下,Compute Engine 虚拟机会将 /etc/ssh/sshd_config
SSH 配置文件中的 PermitRootLogin
参数设置为 prohibit-password
或 no
。按照以下针对虚拟机的说明启用以根用户身份登录:
通过执行以下操作来启用以根用户身份登录:
像往常一样连接到虚拟机。
通过运行以下命令,在
/etc/ssh/sshd_config
文件中将PermitRootLogin no
更改为PermitRootLogin prohibit-password
:sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
通过重启虚拟机或运行虚拟机操作系统的重启命令来重启
sshd
守护程序。等待虚拟机重新启动,然后以根用户身份进行连接。
以根用户身份连接
启用以根用户身份登录后,以根用户身份连接到虚拟机。
gcloud
使用 gcloud compute ssh
命令并在虚拟机名称前指定 root@
,以根用户身份连接到虚拟机:
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
通过运行以下命令连接到虚拟机:
gcloud compute ssh \ --project=PROJECT_ID \ --zone=ZONE \ root@VM_NAME
请替换以下内容:
PROJECT_ID
:包含虚拟机的项目 ID。ZONE
:虚拟机所在区域的名称VM_NAME
:虚拟机的名称
第三方工具
为根用户创建 SSH 密钥。密钥的用户名必须是
root
。使用第三方工具进行连接,并指定以下内容:
私钥:根用户的私钥
用户名:用户名必须是
root
问题排查
如需查找诊断和解决失败的 SSH 连接问题的方法,请参阅排查 SSH 问题。
后续步骤
- 了解如何将文件传输到虚拟机。
- 了解与 Linux 虚拟机的 SSH 连接在 Compute Engine 上的工作原理。