我有一个无法访问 CentOS 8 虚拟机的 Google Cloud 项目。它在 x86_64 上运行内核版本 4.18.0-193.19.1.el8_2.x86_64。我也在启用 selinux 的情况下运行。
昨天在我的 CentOS 8 虚拟机上运行之前sudo yum update
,我能够通过 OTP 进行 SSH 和身份验证而没有问题。今天,我所有的 OTP 代码都失败了。我不确定更新是问题的原因,但这是我在此问题浮出水面之前所做的唯一重大更改。
我尝试在手机的 Google Authenticator 应用程序上重新同步,但没有帮助。此外,我已经尝试了在运行时创建的每个紧急临时代码google-authenticator
,但也没有一个有效。据我所知,客户端和服务器之间的时间足够同步。
作为对此的回应,我启用了串行控制台访问,但是,我记得从来没有为我的 CentOS 用户设置密码——只是 SSH 密钥。因此,我无法通过串行控制台进行身份验证,也无法通过 SSH 进行身份验证。
还有什么我可以尝试的吗?
首先,我建议您检查日志。为此,如果可能,请重新启动您的 VM 实例,并在
Compute Engine
->VM instances
-> 单击 NAME_OF_YOUR_VM -> 在VM instance details
查找部分日志中检查日志,然后单击Serial port 1 (console)
任何可以解释您的 VM 实例发生情况的错误或警告消息。要通过串行控制台访问,请按照以下步骤操作:
使用命令启用串行控制台连接
gcloud
:或转到
Compute Engine
->VM instances
-> 单击NAME_OF_YOUR_VM_INSTANCE
-> 单击EDIT
-> 转到部分Remote access
并检查Enable connecting to serial ports
创建临时用户和密码以登录:关闭您的虚拟机并通过添加部分键和值来设置启动脚本:
Custom metadata
startup-script
然后启动你的虚拟机。
使用
gcloud
以下命令通过串行端口连接到您的 VM :或转到
Compute Engine
->VM instances
-> 点击NAME_OF_YOUR_VM_INSTANCE
-> 并点击Connect to serial console
检查更新后出了什么问题。
使用以下命令禁用通过串行端口的访问
gcloud
:或转到
Compute Engine
->VM instances
-> 单击NAME_OF_YOUR_VM_INSTANCE
-> 单击EDIT
-> 转到部分Remote access
并取消选中Enable connecting to serial ports
请记住,根据文档Interacting with the serial console:
此外,请查看文档Troubleshooting SSH和第 3 方文章Resolving getting locked out of a Compute Engine。