google-cloud-platform - 如何从 ~/.ssh/google_compute_engine 恢复私钥
问题描述
我在使用VM_instance
GC 时被卡住了。我获准加入一个现有项目并设法创建了一个 VM 实例(让我们称之为myInstance
)。
GCP 已自动 为我创建为=>user_first
的用户。事实是,由于某些原因,在重新启动后,我无法再通过 ssh 加入此实例。myInstance
user_first@myInstance
在论坛上进行了一些检查后,我Gcloud compute config-ssh
随后设置了...看起来VM已经创建了一个新用户user_first_gmail_com
... => user_first_gmail_com@myInstance
。
这里的问题是如何回到初始用户user_first
?
否则我怎么能得到密码,user_first
以便我可以sudo
按原样而不是按原样user_first_gmail_com
?
感谢您的宝贵帮助:-)
解决方案
默认情况下,GCP 的虚拟机使用 SSH 密钥而不是密码来验证用户身份。所以本质上 - 用户获得了一个 SSH 密钥并且无法使用密码登录。因此 - 你无法恢复它。
最快且最成熟的方法是使用启动脚本,该脚本实际上会向该 VM 添加用户和密码:
echo "username:password" | chpasswd
然后启用串行控制台交互并使用给定的凭据登录。
之后进入用户的主目录;/home/usershomedir/.ssh/ and you will find all the keys in
authirized_keys 文件。
这将允许您读取密钥并可能以常规方式访问实例。
但是你得到的原因有很多Permission denied (publickey). ERROR:
。检查主磁盘是否未满。如果是这样,则系统功能无法正常工作(例如登录用户)。
我正在粘贴我自己对另一个类似问题的回复:
如果您启用了操作系统登录,您可以通过在 IAM 中授予适当的角色来控制对 VM 的访问。向启用了操作系统的 VM 授予 SSH 访问权限的最方便和集中的方法是创建一个专用服务帐户并授予它 SSH 访问权限。
最好尝试更新您的 SSH 密钥:
gcloud compute os-login ssh-keys update
如果您禁用了操作系统登录(默认设置,除非您的组织强制启用它),那么您可以尝试使用
gcloud compute config-ssh
.
如果您仍然无法连接,您可以查看通用SSH 故障排除文档。
还有一个可能会提示您如何访问您的虚拟机。
推荐阅读
- css - 如何防止 Feed 项溢出到下一列
- regex - Generating regex to exclude a string in path
- android - Android 本机 java8 支持 API 16 4.1.2
- c - GetTempPathA 返回不正确的用户文件夹
- javascript - 在这段代码中将分号放在布尔表达式之前的含义是什么?
- dask - 明智地使用已经完成的计算
- oracle - Oracle 资源管理器 CPU 使用计划
- android - 当我的应用程序在 android 中被杀死并关闭时,为什么我的通知在后台不起作用
- php - 警告:mysqli_query() 期望参数 1 为 mysqli,是否为 null?
- sharepoint - 在 SharePoint 文档库中查看文件属性而不是文件