从谷歌云中的虚拟机锁定

Posted

技术标签:

【中文标题】从谷歌云中的虚拟机锁定【英文标题】:Locked out from a VM in google cloud 【发布时间】:2019-06-21 17:46:04 【问题描述】:

我们在谷歌云中有一台机器,我们使用我们的默认项目密钥连接到(通过 SSH)。

机器已启动并工作了几天。 现在突然服务器不接受我们的密钥,我们无法通过浏览器连接到它。

这里可以做什么?我们如何才能重新获得对我们机器的访问权限?

VM 是 Ubuntu Server 16.04。

【问题讨论】:

仔细检查您要连接的 IP 地址。 添加到@JohnHanley 的评论。如果您已关闭实例,如果您在实例上使用临时 IP 地址,则您的 IP 可能已更改。 @hachemon 我再次检查了 IP 地址。通过 Web 界面的 SSH 也不起作用 【参考方案1】:

我要查看的一件事是 IP 地址,如果您的 GCE 实例使用 ephemeral IP,则在重新启动实例时它可能会发生变化。

另外,请尝试使用gcloud command 访问您的 GCE 实例:

gcloud compute ssh INSTANCE_NAME --zone ZONE_NAME

如果这不起作用,请强制 gcloud 通过移动现有密钥对来重新创建新的 SSH 密钥对:

mv ~/.ssh/google_compute_engine ~/.ssh/old-google_compute_engine
mv ~/.ssh/google_compute_engine.pub ~/.ssh/old-google_compute_engine.pub

之后,执行 gcloud compute ssh 命令,看看是否可以访问。

如果您使用的是第 3 方客户端,请尝试生成新的 SSH 密钥文件:

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

然后将add the new SSH key 连接到您的 GCE 实例并再次尝试连接。

【讨论】:

在尝试使用 gcloud 连接时仍然显示相同的错误 - “服务器拒绝我们的密钥”。我仔细检查了IP,所以没问题。我尝试向实例添加一个新的 SSH 密钥,但它不起作用:( 您是否尝试过查看serial console logs 以查看 GCE 实例中是否有内部防火墙正在运行?在这种情况下,您应该尝试通过运行 startup script 来禁用内部防火墙。 我查过了,没有防火墙。我也尝试过使用启动脚本来替换 .ssh/authorized_keys 中的密钥,甚至添加一个带有密码的新用户。到目前为止没有任何效果 试试这个可能。我有类似的问题***.com/questions/53063885/… @FahadAbid 试过了..还是不行..我认为它甚至无法运行启动脚本:(

以上是关于从谷歌云中的虚拟机锁定的主要内容,如果未能解决你的问题,请参考以下文章

VM中Panda_gbq导入错误(谷歌云平台虚拟机)

VMware虚拟机提示“锁定文件失败 打不开磁盘”解决方法

停止和启动深度学习谷歌云虚拟机实例导致 tensorflow 停止识别 GPU

英特尔携手谷歌云加速最新虚拟机;谷歌云平台下调抽成比例;Hitachi Vantara推出全新云成本优化服务...

VMWare虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘”的解决方法

vmware vsphere 虚拟机出现“未能锁定文件”报错