
使用時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。
正常登入您的虛擬機器並使用命令找出其外部IP
$ curl ifconfig.co
(我建議您不要使用外部IP,因為它是動態IP,並且會在某個時間點更改,而且,只有在允許GCP實例透過外部IP登入時,您才能使用它ssh 連接埠)
您也可以在 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 終端機視窗:)