mdi*_*ivk 2 ssh instance google-cloud-platform
我有一个名为 的实例welynxcore,我通过控制台 SSH 进入它没有问题。
我打开了 Cloud Shell 命令行,看看我是否可以从那里 ssh:
所以它不允许我这样做的错误:
ssh:无法解析主机名 welynxcore:名称或服务未知
我在这里缺少什么?是否允许在 Cloud Shell 中进行 ssh?以下是实例列表:
当我打开 Cloud Shell 时,我在哪个实例上?
xenonxie@cloudshell:~ (rock-perception-263016)$ hostname
cs-6000-devshell-vm-8e59d29e-e820-4b08-aea1-b04d4a597711
Run Code Online (Sandbox Code Playgroud)
cs-6000-devshell-vm-8e59d29e-e820-4b08-aea1-b04d4a597711指的是哪个实例?
提前感谢您的启发。
[更新]
从 VM 实例中,我看到该实例被授予了一个公共 ip 地址:34.67.190.134,在没有对默认安全设置进行任何更改的情况下,我尝试使用 Cloud Shell 通过 SSH 连接到它并收到以下消息:
xenonxie@cloudshell:~ (rock-perception-263016)$ ssh 34.67.190.134
Run Code Online (Sandbox Code Playgroud)
无法确定主机“34.67.190.134 (34.67.190.134)”的真实性。ECDSA 密钥指纹是 SHA256:mVzPEGPrWIuEXcojJTgwpinWO4eB2RwupWVA/Ix7Ko4。您确定要继续连接吗(是/否)?是 警告:将“34.67.190.134”(ECDSA)永久添加到已知主机列表中。权限被拒绝(公钥)。
似乎我需要将实例的公钥存储在分配给我的 GCP 帐户的“免费”默认虚拟机实例上?我对吗?公钥文件在哪里,是否有一种简单的方法来传输/导入该密钥?
非常感谢。
创建 Cloud Shell 命令行时,会创建一个虚拟机,它是 a 的实例g1-small (请参阅Cloud Shell 的工作原理)。这是一个免费实例。它不是显示在项目下的实例下的 Compute Engine 虚拟机实例。实际上,您的 Cloud Shell 实例与您的 GCP 登录身份相关联,而不与任何单个项目相关联。因此,当您在任何当前选定的项目上打开 Cloud Shell 时,您拥有的任何持久数据都会出现。这应该回答您的第一个问题...... Cloud Shell不是您项目的 VM 实例下列出的任何实例。
现在我们开始谈论网络。如果您登录 Cloud Shell 并运行,ip addr您将看到实例的 IP 地址。您会发现它们与您的 VPC 网络的任何已知条目都不对应。换句话说,从您的 Cloud Shell 到您的 VPC 网络上的虚拟机实例没有网络路径。您的 Cloud Shell 实例确实具有 Internet 连接。这意味着您可以从 Cloud Shell 访问您的 VM 实例,只要您通过 VM 实例的公共 IP 地址访问它们(假设它们有一个)。
更新更新:使用公共 IP 公开 VM 后,您可以使用 SSH 登录。但是,SSH 要求您有一个私钥(在您运行 ssh 的地方本地),并且目标 (VM) 已授权相应的公钥以允许登录。
这里有几个故事在上演。首先,您可以创建一个公钥/私钥对,然后通过 GCP 控制台或相应的 gcloud 命令将您的公钥添加到 SSH 密钥中。看:
但是,一种更简单的方法是使用生成的密钥对(这更容易)登录(通过 SSH)。您可以gcloud compute ssh为此使用该命令。看:
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |