阻止 gcloud 使用 Putty(Windows 上的 google cloud sdk)

阻止 gcloud 使用 Putty(Windows 上的 google cloud sdk)

使用時Google雲端 SDK對於 Windows, gcloud compute ssh將啟動內建油灰。是否可以為gcloud compute ssh指令指定不同的預設 ssh 用戶端?

答案1

最近發布的 Cloud SDK for Windows 附帶了預先包裝的 putty 可執行檔(dir/bin/sdk 資料夾)。

答案2

您可以使用 MobaXterm、Windows 終端機或任何其他支援 ssh 的命令提示字元應用程式登入 GCP VM。您所需要的只是私鑰內部/外部IP您的 GCP 實例(又稱 GCP VM)。

私鑰通常是C:\Users\<username>\.ssh\google_compute_engine

如果您找不到該文件,您可以透過空運行 gcloud login 命令來了解它的路徑。

$ gcloud compute ssh example-instance --zone=us-east1-b --dry-run

(--zone 標誌是可選的。)

從輸出中,您會注意到命令中使用的私鑰將以.ppk擴展名結尾(ppk代表 putty-private-key)。

如果您在同一路徑中瀏覽文件資源管理器,您會發現另一個沒有.ppk副檔名的文件,這是標準格式的私鑰。

現在您需要執行個體的外部/內部 IP(如果您使用 VPN,則可以使用內部 IP)。

您可以使用兩種方式找到虛擬機器的外部 IP。

  1. 正常登入您的虛擬機器並使用命令找出其外部IP

    $ curl ifconfig.co

(我建議您不要使用外部IP,因為它是動態IP,並且會在某個時間點更改,而且,只有在允許GCP實例透過外部IP登入時,您才能使用它ssh 連接埠)

  1. 您也可以在 GCP Console 中找到內部/外部 IP(僅當您擁有管理員權限時才可能)。

    • 顯示這一點的圖像鏈接

取得虛擬機器的內部或外部 IP 後,您可以執行以下命令從您喜歡的 shell 登入。

$ ssh -i <path to private key without the (.ppk) extension> user@your_instance_IP

答案3

您可以建立一個新命令並將其保存在 Microsoft.PowerShell_profile.ps1 中:

function g-ml-vm
{
    # get default command as string(--dry-run)
    $SrcCommand = (gcloud beta compute ssh username@ml-ubuntu-18 --dry-run `
        --zone "your-zone" --project "your-project-id") | Out-String

    # remove path to putty.exe
    $PuttyExe = "putty.exe"
    $SrcCommand = $SrcCommand.SubString($SrcCommand.IndexOf($PuttyExe) + $PuttyExe.length)

    # use ssh, remove .ppk file extension from the key name
    $NewCommand = "ssh" + $SrcCommand.Replace(".ppk", "")

    # run
    iex $NewCommand
}

您只需更改此功能的第一個命令即可。代替使用者名稱@ml-ubuntu-18,你的區域你的項目 ID與你的價值觀。

若要使用新的設定檔腳本,請重新啟動終端或執行. $profile.之後你就可以使用你的這個指令了。

這樣我就可以連接到 gcloud VM,而無需離開我精美的 Windows 終端機視窗:)

相關內容