无法通过 SSH 连接到 Google Cloud

2023-12-03

我安装了谷歌云SDK

我认为 Web UI 创建了一个新实例。我对 SSH 不太了解。我按照此处描述的步骤进行操作:https://cloud.google.com/compute/docs/instances#sshkeys

我有 Window 7 操作系统

我按照此处的建议检查了防火墙规则:https://cloud.google.com/compute/docs/troubleshooting#ssherrors我通过 Web UI 检查了这些并发现了规则

"default-allow-ssh  0.0.0.0/0   tcp:22  Apply to all targets"

我遵循的步骤:

1) > gcloud auth login(默认浏览器打开,我授权 Google Cloud SDK) Google SDK Shell 输出:

"Saved Application Credentails. You are now logged as [someuser@gmail]
Your current project is [some-project-999]. 

2) > gcloud compute ssh my-instance --zone us-central1-aGoogle SDK Shell 输出:

WARNING: You do not have an SSH key for Google Compute Engine.
WARNING: [C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\bin\sdk\ssh-keygen.EXE] will be executed to generate
 a key.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
The key fingerprint is:
ssh-rsa 2048 06:73:ac:e8:f2:31:c8:df:d4:b0:a2:3b:a2:53:6c:09
Your private key has been saved in C:\Users\First Last\.ssh\google_compute_engine.
Your public key has been saved in C:\Users\First Last\.ssh\google_compute_engine.pub.
Your putty key has been saved in C:\Users\First Last\.ssh\google_compute_engine.ppk.
Updated [https://www.googleapis.com/compute/v1/projects/arctic-depth-863].
Server refused our key
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
Server refused our key
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
Server refused our key
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
FATAL ERROR: Network error: Software caused connection abort
FATAL ERROR: Network error: Connection timed out
ERROR: (gcloud.compute.ssh) Could not SSH to the instance.  It is possible that your SSH key has not propagated to the i
nstance yet. Try running this command again.  If you still cannot connect, verify that the firewall and instance are set
 to accept ssh traffic.

在浏览器的 Web UI 上,我打开 Broser 的 SSH 并导航到 .ssh 文件夹

someuser_gmail_com@my-instance:~$ cd .ssh
someuser_gmail_com@my-instance:~$ cat authorized_keys
# Added by Google
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4OxYxWvIlp...F7As google-ssh {"userName":"[email protected]","expireOn":"2015-02-21T23:29:06+0000"}
# Added by Google
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzd...KRqcUZmvWr= google-ssh {"userName":"[email protected]","expireOn":"2015-02-21T23:28:55+0000"}

在 Web UI 上,我导航到项目 > 计算 > 计算引擎 > 元数据 > SSH 密钥,我看到三个记录

用户名密钥

  • someuser_gmail_com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4...", "edpireOn":"2015-02-21T23:29:06+0000"}
  • someuser_gmail_com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTIt...", "edpireOn":"2015-02-21T23:29:06+0000"}
  • 首尾 ssh-rsa AAAAB3NzaC1yc2EAAABJQAAAQEAi...ZkpSpRt6RQ== 首尾@MYPC

在我的本地计算机中,我导航到 Users/First Last/.ssh/google_compute_engine.pub 并看到

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAit...mGhUKZRgFZkpSpRt6RQ== First Last@MYPC

问题:

  • 用户文件夹路径中的空格是否会导致问题(即“First Last”)?
  • 当 Google Cloud SDK 创建密钥时,它将注释设置为 First Last@MYPC。这是正确的设置吗? (我一直在阅读并尝试这个和那个,我怀疑它应该类似于 someuser@my-instance-public-IP)

当我 Google Cloud SDK > gcloud 计算实例描述 my-instance --zone us-central1-a --format yaml

canIpForward: false
creationTimestamp: '2015-02-21T14:53:37.276-08:00'
disks:
- autoDelete: true
  boot: true
  deviceName: my-instance
  index: 0
  interface: SCSI
  kind: compute#attachedDisk
  licenses:
  - https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-1204-precise
  mode: READ_WRITE
  source: https://www.googleapis.com/compute/v1/projects/some-project-999/zones/us-central1-a/disks/my-instance
  type: PERSISTENT
id: '111812933445597333'
kind: compute#instance
machineType: https://www.googleapis.com/compute/v1/projects/some-project-999/zones/us-central1-a/machineTypes/g1-small
metadata:
  fingerprint: w3steEkuQUS=
  kind: compute#metadata
name: my-instance
networkInterfaces:
- accessConfigs:
  - kind: compute#accessConfig
    name: External NAT
    natIP: 112.134.99.170
    type: ONE_TO_ONE_NAT
  name: nic0
  network: https://www.googleapis.com/compute/v1/projects/some-project-999/global/networks/default
  networkIP: 10.356.252.66
scheduling:
  automaticRestart: true
  onHostMaintenance: MIGRATE
selfLink: https://www.googleapis.com/compute/v1/projects/some-project-999/zones/us-central1-a/instances/my-instance
serviceAccounts:
- email: [email protected]
  scopes:
  - https://www.googleapis.com/auth/devstorage.read_only
  - https://www.googleapis.com/auth/logging.write
status: RUNNING
tags:
  fingerprint: DLYFgkKTlB3=
  items:
  - http-server
zone: https://www.googleapis.com/compute/v1/projects/some-project-999/zones/us-central1-a

C:\Program Files\Google\Cloud SDK>

这是从 Windows 使用 Cloud SDK 时的一个已知问题。

请在 [1] 下载 pageant.exe 并使用它加载您的 ppk 密钥或使用 Putty(可从同一链接下载)通过 SSH 连接到实例,如 [2] 中所述。

作为解决方法,您甚至可以将 C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\sdk\ 中的 ssh.exe 重命名为 ssh-bak.exe,将 ssh-term.exe 重命名为 ssh.exe

Link:
[1] - http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
[2] - https://cloud.google.com/compute/docs/console#sshkeys

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法通过 SSH 连接到 Google Cloud 的相关文章

  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 如何删除 GAE 搜索 API 中的搜索索引

    我使用 Google App Engine 搜索 API 我不知道下图中的功能名称是什么 我想删除 客户索引 和 客户 也许正确的问题是 如何删除搜索索引 在生产中 您可以删除索引中的文档 但索引仍然可见 https developers
  • 如何以编程方式创建和暂停 Google App Engine 任务队列

    我正在使用 Google App Engine 并且一直在使用命名推送队列来处理一些任务 队列是使用queue xml 定义和配置的 没关系 现在我正在尝试做更多的事情 1 有没有办法动态创建和配置Java 中的新队列 动态 2 另外 一旦
  • Google App Engine - 节点:找不到模块“firebase-admin”

    第一次在这里部署 GAE 应用程序 我尝试遵循本教程 https firebase googleblog com 2016 08 sending notifications Between android html https fireba
  • 从Android客户端登录appengine

    我正在尝试登录应用程序引擎并访问应用程序引擎中的用户服务API 基本上我希望能够看到谁登录了我的 servlet 我正在使用从 android 获取 authtoken 然后从应用程序引擎获取 ASID 或 SACID cookie 的身份
  • 哪些因素会导致 App Engine 请求中未跟踪时间的高度可变性?

    我刚刚对我的应用程序进行了负载测试 我注意到两个相同请求的延迟存在很大差异 3 秒与 30 秒 当我挖掘痕迹时 我发现了以下内容 Traced ms Untraced ms High latency Request 193 29948 Lo
  • 以编程方式访问 Google App Engine 配额详细信息

    有谁知道是否可以通过 App Engine SDK 内的代码或某种形式的 WebAPI 访问您当前帐户配额的详细信息 我希望能够跟踪正在运行的应用程序中的数据存储使用情况和带宽使用情况 以便它可以根据应用程序剩余的配额级别来改变其行为 您可
  • Google App Engine 中的图像上传

    我正在开发一个网站 用户可以上传与某个位置相关的帖子 然后他们可以添加两到三张照片 我了解如何使用数据存储区或 Blobstore 进行基本上传 但我想将这些照片链接到帖子和用户 然后能够在连接到帖子和用户的所有页面中显示它们 这是一般的想
  • 从 API Explorer 调用 API 方法时不允许使用范围

    我在 Google App Engine 中有一个奇怪的行为 我正在使用 Eclipse 和 Java 进行开发 特别是使用 Google Cloud Endpoints 我使用以下设置创建了一个示例 API 实际上 我正在使用许多其他示波
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • 从 iOS 设备向 Google App Engine 进行身份验证

    我正在开发一个 iPhone 应用程序 它使用 Google 应用程序引擎来托管后端 我需要通过 Google 进行身份验证 但我似乎无法找到从我的应用程序中执行此操作的方法 看来我要做一个UIWebView让用户登录到我从 Google
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 确定代码是否在 App Engine 运行时 (Java) 上运行

    如何确定某些代码 Serv let 或简单的类 是否正在 Google App Engine 运行时 Java 上运行 以便决定是否使用 App Engine 的特定库 是否有一些可靠的运行时环境 ID 您可以检查com google ap
  • 默认 GCS 存储桶名称

    根据https cloud google com appengine docs python googlecloudstorageclient activate https cloud google com appengine docs p
  • 获取最新数据项 - Google App Engine - Python

    我需要检索添加到集合中的最新项目 我是这样做的 class Box db Model ID db IntegerProperty class Item db Model box db ReferenceProperty Action col
  • 如何在 devserver 上使用 Oauth 测试 Cloud Endpoints

    我的应用程序使用 Oauthed Cloud Endpoints 并且在生产中运行良好 我的问题是 在本地开发服务器上 我的 User 用户始终设置为 电子邮件受保护 cdn cgi l email protection 即使我已经完成了通
  • 显示模板中存储为二进制 blob 的图像

    我有一个模型 其中图像存储为二进制 blob 我想在模板中显示该图像以及有关该对象的其他数据 由于图像不是一个单独的文件 我不知道如何显示它 我尝试过设置标题 或使用send file or render template 但我要么没有得到
  • Powershell Invoke-SSHCommand:使用“1”个参数调用“EndExecute”时出现异常

    我正在尝试通过 powershell 中的 Posh SSH 模块连接到 Netscaler SDX 服务器 以搜索特定文件 然后下载它 如果我用 putty 连接到服务器 它就可以工作 然后我可以输入 shell 来打开普通的 bash
  • Google App Engine 的优点和缺点 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 2009 年 8 月 21 日更新列表 帮助我列出在 Google App Engine 上构建应用程序的所有优点和缺点 Pros 无需购买服务
  • App Engine Flex 服务正在运行但找不到

    如何关闭我已删除且无法访问的 App Engine Flex 服务 昨天 我部署了一项新的 App Engine Flex 服务 然后将其删除 无论出于何种原因 该服务在一天后仍在运行 我可以通过查看日志查看器来确认它仍在运行并生成日志 当

随机推荐

  • 在 Windows 上的软件中关闭 USB 设备的电源

    我想通过 Windows 上的软件重新启动 USB 设备 我正在开发一个小型 USB 电源微控制器 该芯片将在电源循环后恢复到本机行为并允许代码下载 由于我的代码会在出现问题时使设备崩溃 使其忽略所有 USB 命令 因此我必须从系统中物理拔
  • 将带有图像的 HTML5 画布另存为图像

    我正在尝试将带有图像的画布保存为 PNG 但是当我尝试这样做时 var myCanvas document getElementById myCanvas var img document createElement img var ctx
  • 带有自定义视图的 AlertDialog:调整大小以包裹视图的内容

    我在正在构建的应用程序中遇到了这个问题 请忽略所有设计缺陷和缺乏最佳实践方法 这纯粹是为了展示我无法解决的问题的示例 I have DialogFragment它返回一个基本的AlertDialog与定制View设置使用AlertDialo
  • jquery发送post数据而不定义url

    是否可以通过ajax或post发送数据而不定义url 这是我正在尝试工作的代码 gll delete click function var gll gll val var gll string gll split var gll id gl
  • jquery 替换不起作用

    DEMO 你好 我正在尝试删除 JS 中的箭头 但似乎替换不起作用 a class pr page prev Previous a a class pr page next Next a pr page prev text replace
  • 在 Windows 10 TP 上使用 VS-2015 CTP 5 和 Python 3.5a 编译 boost-python 教程

    我正在尝试获取boost python 扩展模块教程在 Windows 10 中使用现代 C 14 编译器 我已经使用 vc 14 VS 2015 CTP 5 下载了最新版本的 boost 1 57 和 python 3 5a 源代码 我使
  • c++ - SendInput() 无法正确管理 Alt 代码

    在我正在开发的程序中 我必须模拟击键 为此我使用SendInput 方法 传递一个向量作为参数 该向量包含作为击键一部分的输入 我当前的代码似乎可以与我正在测试的所有组合正常工作 Alt 代码除外 这就是我目前所做的 Press ALT i
  • PHP 数组转换为对象的效率?

    据我了解 PHPstdClass当代码嵌套得足够深以至于它实际上很重要时 对象通常比数组更快 如果我通过类型转换来定义 效率会受到怎样的影响stdClass飞行中的对象 var object array one gt 1 two gt 2
  • 从PDF中提取图像,如何处理JBIG2编码

    我有一堆 PDF 文件 其中一些是纯文本 但有些完全或部分保存为 每页一个图像 因为它们是从扫描仪生成的 我需要提取所有图像包含在 PDF 中 然后分别检查每个图像 我能够提取大部分图像在 SO 中找到一个 python 脚本 请参阅问题
  • 使用证书和 C# 连接到 Exchange Online

    有人使用 C 在线连接 Exchange 吗 我遇到了一个似乎无法取得进展的问题 我有以下代码片段尝试连接到在线交换 public Runspace getSpace String schema http schemas microsoft
  • Font Awesome 在本地工作,但在 Heroku 上不行

    所以我安装了 font awesome gem 一切看起来都很好 使用最新版本等 也包含在我的 application css 中 require font awesome 当我从本地查看时 结果很好并且字形图标出现了 当我将其上传到her
  • ASP.Net MVC 控制器在部署到 IIS 7 时导致“未找到”错误

    我正在使用 ASP Net MVC 开发一个网站 我在 Home 控制器中有一个方法 它在调用时返回部分视图 问题是当我使用 jQuery 调用控制器方法时 出现 404 Not Found 错误 仅当应用程序部署在 IIS 7 上时才会发
  • enableEventValidation 和 validateRequest 区别

    enableEventValidation 和 validateRequest 之间有什么区别 虽然前者是由控件引起的回发 回调 我假设只有服务器端 请告知 但后者是在每个请求上 这无论如何都是由控件回发引起的 或者 validateReq
  • Python中的数组是按值赋值还是按引用赋值?

    我想知道为什么当我删除原始数组时它会影响复制的数组 arr 1 2 3 arr1 arr del arr print arr1 this prints 但是当我修改原始数组的元素时 对复制的数组没有影响 arr 1 2 3 arr1 arr
  • 如何在 Bootstrap 弹出窗口中插入关闭按钮

    JS function example popover placement bottom html true title span class text info strong title strong span
  • DbContext 放弃更改而不进行处理

    我有一个桌面客户端应用程序 它使用模式窗口来设置分层对象的属性 由于这是一个客户端应用程序 并且对 DbContext 的访问不是线程化的 因此我在主表单上使用了一个长期运行的上下文 该上下文被传递给模态子项 这些模式窗口使用 Proper
  • 如何在 swift 中将 .caf 音频文件转换为 .mp4 文件

    我正在使用设备麦克风录制音频AVAudioRecorder返回文件在 caf该格式只能在 Apple 设备上播放 而不能在 Android 设备上播放 由于苹果不支持 mp3文件 所以我想将其转换为 mp4上传到服务器之前格式化 是 mp4
  • Java 库/api 将语言代码转换为语言名称

    是否有一个 Java 库 api 给定 iso 语言代码 返回相应的语言名称 例如 zh cn 应返回中文 en 应返回英文等 Java Locale 类可以做到这一点 new Locale zh cn getDisplayName gt
  • HTTPClient-java.net.SocketException:抛出未连接的套接字未实现

    我正在使用 HTTPClient 4 0 连接远程服务器并使用 HTTPS 传输文件 当我尝试连接时 出现异常 java net SocketException 未实现未连接的套接字 请查看堆栈跟踪 java net SocketExcep
  • 无法通过 SSH 连接到 Google Cloud

    我安装了谷歌云SDK 我认为 Web UI 创建了一个新实例 我对 SSH 不太了解 我按照此处描述的步骤进行操作 https cloud google com compute docs instances sshkeys 我有 Windo