我无法通过 SSH 连接到 Compute Engine 上的实例。如果我尝试通过命令行,我会收到以下错误:
Permission denied (publickey)
如果我通过浏览器交互式控制台连接,也会发生同样的情况。在串行端口输出中,我看到:
Mar 22 14:17:04 metadata sshd[9260]: Invalid user name_lastname from xx.xx.xx.xx
Mar 22 14:17:04 metadata sshd[9260]: input_userauth_request: invalid user name_lastname [preauth]
奇怪的是,几分钟前我连接它时没有任何问题,但是在我调整实例大小(将机器类型从小型更改为 n1-standard-2)后,这个问题开始出现。
启动盘没有满,而且我没有修改任何用户。
我也尝试添加防火墙规则,但不起作用。我在同一个项目上有其他几台机器,我可以正常连接到它们。
我可以使用之前在机器上创建的另一个用户(手动)连接到交互式串行控制台,但我无法从中成为 root 用户。
多谢。
答案1
这是 SSH 密钥认证问题。请查看stackoverflow 上的这个答案获得一些有用的信息。
为了与实例的串行控制台交互以排除虚拟机故障,您需要具有 root 或 sudoer 权限。您可以将以下启动脚本添加到虚拟机,然后重新启动它以创建 sudoer 帐户:
useradd -G sudo USERNAME
echo 'USERNAME:PASSWORD' | chpasswd
用您希望的值替换USERNAME
和。PASSWORD