gcloud が Putty (Windows 上の Google Cloud SDK) を使用しないようにする

gcloud が Putty (Windows 上の Google Cloud SDK) を使用しないようにする

使用する場合google-cloud-sdkWindowsの場合は、 gcloud compute ssh組み込みのパテgcloud compute sshコマンドに別のデフォルトの SSH クライアントを指定することは可能ですか?

答え1

Windows 用 Cloud SDK の最近のリリースには、パッケージ化された putty 実行可能ファイル (dir/bin/sdk フォルダ) が付属しています。gcloud のソース コードを見ると、PuTTY の使用はハードコードされており、現時点では別の SSH クライアントを選択できないようです。

答え2

MobaXterm、Windowsターミナル、またはSSHをサポートするその他のコマンドプロンプトアプリケーションを使用してGCP VMにログインできます。必要なのは秘密鍵そしてその内部/外部IPGCP インスタンス (GCP VM とも呼ばれます) の。

秘密鍵は通常C:\Users\<username>\.ssh\google_compute_engine

そのファイルが見つからない場合は、gcloud login コマンドをドライ実行することでそのパスを確認できます。

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

(--zone フラグはオプションです。)

出力から、コマンドで使用される秘密鍵が.ppk拡張子 ( ppkputty-private-key を表します) で終わることがわかります。

同じパスでファイル エクスプローラーを参照すると、拡張子のない別のファイルが見つかります.ppk。これが標準形式の秘密キーです。

ここで、インスタンスの外部/内部 IP が必要になります (VPN を使用している場合は内部 IP を使用できます)。

VM の外部 IP を確認するには 2 つの方法があります。

  1. VMに通常通りログインし、コマンドを使用して外部IPを確認します。

    $ curl ifconfig.co

(外部 IP は動的 IP であり、ある時点で変更されるため、使用しないことをお勧めします。また、SSH ポートを有効にして GCP インスタンスが外部 IP 経由でログインできる場合にのみ使用できます)

  1. GCPコンソールでは内部/外部IPも確認できます。ページ(管理者権限を持っている場合のみ可能です)。

    • この点を示す画像へのリンク

VM の内部または外部 IP を取得したら、以下のコマンドを実行して、お気に入りのシェルからログインできます。

$ 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。その後、このコマンドを使用できます。

この方法なら、Windows ターミナル ウィンドウを離れることなく gcloud VM に接続できます :)

関連情報