我有一个从创建的实例深度学习虚拟机映像这使得我不再允许通过云控制台通过 SSH 进入它,并不断尝试将 SSH 密钥传输到虚拟机。我尝试让它工作的方法如下:
- 访问项目中的其他虚拟机 - 这些虚拟机可以被访问
- 关机并重启多次 - 不起作用
- 创建了我自己的 SSH 密钥对 - 没有用
我现在使用相同的映像创建了另一个实例 - 它可以工作。但是,当我尝试将旧启动盘替换为新启动盘时,出现了相同的问题。我在旧启动盘上安装了大量内容,我想保留它,因此想解决这个问题。
问题:我的旧启动盘出了什么问题,导致 SSH 密钥无法传输到虚拟机,我该如何解决这个问题?
答案1
您的旧启动盘上可能存在丢失、损坏或不匹配的 SSH 主机密钥(而不是用户密钥),这将阻止任何人连接到主机。您的旧启动盘上也可能存在过时的 IAM 数据,包括帐户和用户 SSH 密钥。
我不熟悉这个过程,但如果可以将旧的启动盘安装在文件系统树的其他位置,而不是将其交换为启动盘并替换原始(新的)启动盘,那么这可能会让你更进一步。
答案2
尝试apt install google-guest-agent google-compute-engine
按照以下建议这一页。
昨晚我的一个 GCE 实例也出现了同样的问题。我通常使用 ansible 来管理我的机器,所以据我所知,这个实例很久以前就坏了,但我昨晚才注意到它。安装这些软件包后,Google 管理的 SSH 密钥开始按我的预期显示出来。