我正在 Google Cloud 中运行 Compute Engine VM。
设置实例时,我将公钥粘贴到“安全”部分。现在实例正在运行,我可以在 Google Cloud 控制台的页面上看到该公钥(因此它已保存并关联)
但是,我无法ssh
从我的终端进入实例。我在浏览器中打开了 Google 的 ssh 客户端,发现该~/.ssh/authorized_keys
文件中没有我的公钥。
我手动编辑了 ~/.ssh/authorized_keys
一行,其中包含与此实例上的 Google Cloud 控制台中显示的公钥相同的公钥,发现我可以从我的终端进行连接。但是,一旦我终止 Google 的浏览器内 ssh 会话,它就会~/.ssh/authorized_keys
重置,并且公共 ssh 连接会被阻止。
我如何允许公共 ssh 连接此实例?
答案1
由于您提到 ~/.ssh/authorized_keys 文件中没有您的公钥,这可能与在实例或项目级别激活的 OS 登录有关。
跟随本指南如果已启用,则禁用 OS Login,如此步骤的警告中所述:
警告:在实例上启用 OS Login 会禁用这些实例上基于元数据的 SSH 密钥配置。禁用 OS Login 会恢复您在项目或实例元数据中配置的 SSH 密钥。
如果这不是问题,你应该收集并分享您的日志:
转到
Compute Engine
->VM instances
-> 单击 NAME_OF_YOUR_VM -> 在 VM 实例详细信息中查找部分Logs
并单击Serial port 1 (console)
重新启动您的 VM 实例(如果可能)。
检查完整启动日志中是否存在任何错误或/和警告。
如果发现与磁盘空间相关的错误/警告您可以尝试根据文档调整其大小调整区域永久性磁盘的大小或关注这篇文章恢复无法访问的实例或完整的启动磁盘。
如果您需要更多帮助,请使用以下方式分享完整日志pastebin.com。