Networking

為什麼 google CloudShell 的子網 IP 地址與我的 vm 實例不同?不能ssh,但是可以串口登錄:提示

  • November 27, 2017

虛擬機實例已啟動並執行,可以得到串口 login: 提示,但無法通過 ssh 連接。Google對這種行為的推理是什麼?

虛擬機實例沒有設計為外部 IP 地址。

我的 google cloud shell 實例沒有我的 VM 實例所具有的 10.240.0.0/16 IP 地址,所以我認為這就是我無法通過 cloud shell 進行 ssh 的原因。為什麼實例需要從基於 Web 瀏覽器的 Cloud Shell 中訪問網際網路?

ERROR: (gcloud.beta.compute.ssh) Instance [instance-centos7] in zone [us-zone-somewhere] does not have an external IP address, so you cannot SSH into it. To add an external IP address to the in stance, use [gcloud compute instances add-access-config].

已重新啟動 Cloud Shell 實例,希望能夠使用正確的 IP 地址重建它。

項目範圍的 ssh 密鑰不會被阻止。

在 Web 瀏覽器中,所有 SSH 選項都被禁用並顯示為灰色。

我可以尾隨串口輸出以驗證它停止和啟動但不與它互動,因為我沒有設置密碼。

多年來,我有幾個沒有公共 IP 地址的虛擬實例,但能夠很好地連接,以便在允許從 Internet 訪問之前保護機器。

基於 10.240.0.0/16 ip 子網,看來我有一個舊網路

想要一台無法直接訪問網際網路但 LXC 容器將獲得公共 IP 的虛擬機主機基礎機器。

Cloud Shell 僅根據以下文件提供有限的 shell 供互動式使用。

Google Cloud Shell SSH 連接允許使用者從 Google Cloud Platform Console 中連接到 Google Compute Engine 虛擬機。它與從 Compute Engine 虛擬機實例建立的 SSH 連接不同,因為它們是從另一個 VPC 網路內部建立的,並且可能位於防火牆後面,如果設置不正確,可能會阻止連接。

可以使用或不使用外部 IP 地址來創建 Google Compute Engine 實例。創建沒有外部 IP 地址的實例可提供高級別的安全性,因為無法從外部直接訪問該實例。我們仍然可以從公共連接到實例內部 IP 地址,但只能通過其他可以訪問實例內部 IP 地址的方法。這些方法包括根據以下文件“通過有權訪問內部 IP 地址的 VPN 連接”或通過“堡壘主機”實例進行連接。

確保在創建 VM 實例時未啟用“阻止項目範圍的 SSH 密鑰”選項,否則實例將根據文件忽略項目範圍的 SSH 密鑰

引用自:https://serverfault.com/questions/885236