Google cloud platform Can';将SSH转换为googlecloudvm

Google cloud platform Can';将SSH转换为googlecloudvm,google-cloud-platform,ssh,google-compute-engine,error-code,Google Cloud Platform,Ssh,Google Compute Engine,Error Code,我能够成功地通过SSH连接到我昨天设置的Google云虚拟机,但今天由于某种原因我不能,而且我没有弄乱任何设置,尤其是防火墙设置。它现在不断给我这些错误: 通过云身份感知代理连接失败 代码:4003 原因:无法连接到后端 您可以在不使用云身份感知代理的情况下进行连接 然后,当我单击“无身份识别代理连接”时,我会出现以下错误: 连接失败 我们无法连接到端口22上的VM。了解有关此问题可能原因的更多信息 我不知道发生了什么事。昨天它工作正常,但现在不行。基于这些错误消息,我猜您的项目已经成功了,这有

我能够成功地通过SSH连接到我昨天设置的Google云虚拟机,但今天由于某种原因我不能,而且我没有弄乱任何设置,尤其是防火墙设置。它现在不断给我这些错误:

通过云身份感知代理连接失败 代码:4003 原因:无法连接到后端 您可以在不使用云身份感知代理的情况下进行连接

然后,当我单击“无身份识别代理连接”时,我会出现以下错误:

连接失败 我们无法连接到端口22上的VM。了解有关此问题可能原因的更多信息


我不知道发生了什么事。昨天它工作正常,但现在不行。

基于这些错误消息,我猜您的项目已经成功了,这有时可能会影响SSH到实例的能力,具体取决于配置

为了排除这种情况,您可以尝试以下方法:


首先,尝试禁用云身份感知代理,并通过web控制台连接到VM实例

之后,检查日志:

  • 转到
    computeengine
    ->
    VM实例
    ->在
    VM实例详细信息
    find部分Logs点击
    串口1(控制台)
  • 重新启动VM实例
  • 检查完整引导日志中是否有任何错误或/和警告
如果您的VM实例没有启动,请按照文档说明验证您的磁盘是否具有有效的文件系统和有效的主引导记录(MBR)

如果发现与磁盘空间相关的错误/警告,您可以尝试根据文档和文章调整其大小:

如果一个实例的磁盘空间完全不足或没有运行 Linux来宾环境,然后自动调整根目录的大小 文件系统是不可能的,即使在您增加了 支持它的持久磁盘。如果无法连接到实例, 或者您的启动磁盘已满,无法调整其大小,您必须创建一个 新建实例并从快照重新创建启动磁盘以调整其大小

否则,请尝试通过串行控制台访问VM实例:

  • 使用
    gcloud
    命令:

      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=TRUE
    
      gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
    
      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=FALSE
    
    或者转到
    计算引擎
    ->
    虚拟机实例
    ->单击
    虚拟机实例的名称
    ->单击
    编辑
    ->转到
    远程访问部分
    并选中
    启用串行端口连接

  • 创建用于登录的临时用户和密码:关闭您的虚拟机,并通过在“自定义元数据”部分添加键
    和值来设置:

      useradd --groups google_sudoers tempuser
      echo "tempuser:password" | chpasswd
    
    然后启动你的虚拟机

  • 使用
    gcloud
    命令:

      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=TRUE
    
      gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
    
      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=FALSE
    
    或者转到
    computeengine
    ->
    VM实例
    ->单击
    NAME\u您的\u VM\u实例
    ->并单击
    连接到串行控制台

  • 检查出了什么问题

  • 使用
    gcloud
    命令:

      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=TRUE
    
      gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
    
      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
      --metadata serial-port-enable=FALSE
    
    或者转到
    计算引擎
    ->
    虚拟机实例
    ->单击
    虚拟机实例的名称
    ->单击
    编辑
    ->转到
    远程访问
    部分,取消选中
    启用串行端口连接
    。请记住,根据文件:

    注意:交互式串行控制台不支持基于IP的访问 IP白名单等限制。如果您启用交互式 实例上的串行控制台,客户端可以尝试连接到该实例 任何IP地址的实例。任何人都可以连接到该实例,如果 他们知道正确的SSH密钥、用户名、项目ID、区域和密码 实例名。使用防火墙规则控制对网络的访问 和特定端口


如果无法通过串行控制台连接,请尝试按照文档部分的说明,检查另一个VM上的VM磁盘。同样,您可以将数据传输到另一个正在工作的VM实例。

我在运行composer update时遇到了同样的问题


在我的例子中,重新启动VM实例就解决了这个问题。

目标VM运行的是Linux、Windows还是其他什么?您在看到错误的工作站上运行的具体命令是什么?您的源工作站在哪里(是本地物理工作站还是云托管虚拟机)?我在Google cloud上运行Ubuntu 16.04,我是VM实例,我尝试通过单击连接下的SSH通过SSH连接。您是否以任何方式修改了计算引擎实例?例如,如果您使用默认设置启动一个全新的Ubuntu 16.04实例,您是否能够通过单击SSH Connect按钮从GCP控制台SSH进入该实例?我所做的只是安装一个执行服务器,我一直在尝试使用该服务器,包括确保其安全。如果
sshd
出错,则可能会发生这种情况(端口22还可以,但没有运行任何东西)或端口22被阻止。Google在GCP中有一篇关于调试SSH问题的文章。请按照以下步骤操作,并在完成后更新您的帖子:似乎即使创建了新规则,IAP也没有被激活。在IAP页面的SSH连接选项卡上收到警告