GCP开启SSH登录


GCP开启SSH登录

这是一份针对 Google Cloud (GCP) 服务器开启 Root 密码登录 的完整操作教程。

这个问题之所以顽固,是因为 SSH 的配置文件采取 “先入为主” 原则。你虽然在主文件里改了 yes,但文件头部引入(Include)的云平台默认配置先加载了 no,导致你的修改无效。

请严格按照以下步骤操作,100% 解决问题。


第一阶段:通过网页后台进入服务器

因为 SSH 目前连不上,必须走“后门”。

  1. 打开 Google Cloud Console
  2. 找到你的 VM 实例列表。
  3. 点击该实例所在行的 “SSH” 按钮。
  4. 这会弹出一个新的浏览器窗口(Web Terminal)。

第二阶段:强制覆盖配置(核心步骤)

在弹出的 Web Terminal 黑色窗口中操作:

1. 切换到 Root 身份

为了避免权限不足,先切换成超级管理员:

sudo -i

2. 创建一个高优先级的配置文件

我们不去改动复杂的原文件,而是新建一个文件名以 01- 开头的配置。SSH 会按字母顺序加载,这样我们的配置就会最先生效,从而无视后面的限制。

复制并运行以下整段命令:

echo -e "PasswordAuthentication yes\nPermitRootLogin yes" > /etc/ssh/sshd_config.d/01-custom-force.conf

原理说明:我们在 /etc/ssh/sshd_config.d/ 下创建了一个文件。因为文件名是 01 开头,它会比默认的 50-cloud-init.conf 更早被读取。SSH 只要读到了第一条 PasswordAuthentication yes,就会忽略后面所有的 no

3. 设置 Root 密码

既然要用密码登录,你必须给 root 账户设置一个密码:

passwd root

(输入时屏幕不会显示字符,输入完回车,再次输入确认。)

4. 重启 SSH 服务

让刚才的修改生效:

service sshd restart

第三阶段:回到本地电脑验证

现在,关闭网页窗口,回到你自己电脑的终端(Terminal/PowerShell),执行:

ssh root@IP

预期结果:

  1. 系统不再提示 Permission denied (publickey)
  2. 系统提示 root@IP's password:
  3. 输入你在第二阶段设置的密码,回车即可登录。

⚠️ 安全警告(必读)

你现在的操作(开启 Root 远程登录 + 开启密码认证)是最不安全的配置组合,尤其你的 IP 是公开暴露的。

建议后续加固措施:

  1. 设置极复杂的密码:包含大小写、数字、符号,长度 16 位以上。
  2. 安装 Fail2Ban:防止暴力破解。
    • Debian/Ubuntu: apt update && apt install fail2ban -y
    • CentOS: yum install fail2ban -y
  3. 不要长期开放:测试完或配置完环境后,建议把 /etc/ssh/sshd_config.d/01-custom-force.conf 里的 PasswordAuthentication yes 改回 no,改回使用密钥登录。

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录