【问题标题】:Cannot ssh into GCP instance无法通过 ssh 进入 GCP 实例
【发布时间】:2018-11-21 08:12:05
【问题描述】:

我无法通过 ssh 进入 Google 计算引擎实例。这是场景。

  • 我尝试从 ubuntu ssh 客户端 ssh 到一个实例,因此在我的本地生成了一个私钥和公钥,并将 pubkey 添加到元数据。

  • 但收到Permission denied (publickey) 错误消息,并且实例控制台显示No space left on device

  • 然后我将实例的大小再增加 100GB,然后重新启动实例。

  • 几分钟后,再次尝试 ssh 进入实例并再次收到 Permission denied (publickey) 错误,控制台显示 No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']

    现在我无法通过浏览器控制台、ssh 客户端等任何工具连接到实例。

有没有办法解决这个问题?

提前致谢。

【问题讨论】:

  • 听起来你的磁盘已经装满了,现在需要制作新文件的东西失败了。自动变大并没有帮助,您仍然需要扩大分区并扩展文件系统以使用新的磁盘空间。对此here 有说明。您可能还需要使用serial console,因为 SSH 没有运行空间。
  • @Dan,我也面临同样的问题。我确实升级了磁盘大小,但仍然无法通过 SSH 连接。我也尝试使用串行控制台,但它会提示我不知道的用户名和密码。你能说明一下这个问题吗?。
  • @sanjay:抱歉,如果您没有密码,我不确定如何通过控制台访问虚拟机。

标签: ssh google-cloud-platform google-compute-engine


【解决方案1】:

这几天我遇到了同样的问题,我用 winSCP 访问存储并删除了很多我的脚本创建的重文件,也是因为指令here 有没那么有用。 如果您不知道如何配置winSCP和GCP,请按照我的步骤或this video.

winSCP - 创建密钥

在 winSCP 中创建新站点时

  • 进入高级 --> ssh --> 身份验证
  • 点击Tools并打开Putty gen
  • 生成公钥和私钥
  • 保存它们

复制公钥并打开 GCP

设置您的 GCP 实例

单击您的实例以编辑其设置

  • 向下滚动直到到达 ssh 键
  • 粘贴您的密钥
  • 保存

完成,现在您可以访问您的实例存储并删除一些文件;之后,您的实例将能够正确启动并创建所需的临时文件。

【讨论】:

    【解决方案2】:

    正如 Dan 提到的,您需要连接串行控制台以利用分配的额外磁盘空间来扩展文件系统。您也可以尝试释放一些空间等。

    【讨论】:

      【解决方案3】:

      完整教程已链接: https://youtu.be/HSBTnfDsVRs

      在本视频中,我谈到了如何使用 Windows 终端通过 SSH 连接到 GCP。有三种方法可以做到这一点:

      通过 Chrome 访问 通过命令提示符访问 通过自定义 Windows 终端选项卡访问(最好!!) Chrome 的流程:

      打开谷歌浏览器 输入“https://console.cloud.google.com/” 你可以访问它! 谷歌云SDK安装流程:

      安装谷歌云 SDK (https://cloud.google.com/sdk/docs/downloads-interactive) 点击下一步” 点击“我同意” 安装好了!! 命令提示符流程(通过 PuTTy):

      打开 Windows 终端 然后,打开命令提示符 输入"gcloud cloud-shell ssh" 你可以访问它! 自定义 Windows 终端选项卡的流程:

      打开 Windows 终端

      进入设置并点击“打开 JSON 文件”

      然后添加以下内容:

      { 
         "backgroundImage": "C:/Users/user/Downloads/Pictures/gcp.png",   
         "backgroundImageOpacity": 0.2, 
         "commandline": "wsl ~/ssh-gcloud-env.sh [email] [project_id]",
         "hidden": false, 
         "icon": "C:/Users/user/Downloads/Pictures/gcp.png", 
         "name": "SSH into GCP" 
       },
      

      然后,打开 wsl2 Ubuntu VM,并在 /home/user/ 目录中创建一个名为“ssh-gcloud-env.sh”的文件。并输入以下命令:

      gcloud auth login $1 
      gcloud config set project $2 
      gcloud cloud-shell ssh 
      

      保存文件并输入以下内容:"chmod +x ssh-gcloud-env.sh"

      最后,转到您的 Windows 终端并打开自定义选项卡。

      耶!我们做到了

      【讨论】: