Verhindern Sie, dass gcloud Putty verwendet (Google Cloud SDK unter Windows).

Verhindern Sie, dass gcloud Putty verwendet (Google Cloud SDK unter Windows).

Beim BenutzenGoogle Cloud SDKfür Windows, gcloud compute sshstartet eine integrierteKitt. Ist es möglich, für den Befehl einen anderen Standard-SSH-Client anzugeben gcloud compute ssh?

Antwort1

Aktuelle Versionen des Cloud SDK für Windows enthalten vorgefertigte Putty-Programme (Ordner „dir/bin/sdk“). Beim Blick auf den Quellcode von gcloud scheint es, dass die Verwendung von PuTTY fest codiert ist und es derzeit nicht möglich ist, einen anderen SSH-Client auszuwählen.

Antwort2

Sie können sich bei der GCP-VM mit MobaXterm, Windows Terminal oder einer anderen Eingabeaufforderungsanwendung anmelden, die SSH unterstützt. Alles, was Sie brauchen, ist dasPrivat Schlüsselund dasinterne/externe IPIhrer GCP-Instanz (auch bekannt als GCP VM).

Der private Schlüssel ist normalerweiseC:\Users\<username>\.ssh\google_compute_engine

Wenn Sie die Datei nicht finden, können Sie ihren Pfad ermitteln, indem Sie den Befehl „gcloud login“ probeweise ausführen.

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

(Die Flagge --zone ist optional.)

In der Ausgabe werden Sie feststellen, dass der im Befehl verwendete private Schlüssel mit einer Erweiterung endet .ppk( ppksteht für einen Putty-Private-Key).

Wenn Sie im Datei-Explorer im selben Pfad suchen, finden Sie eine weitere Datei ohne die .ppkErweiterung. Dabei handelt es sich um den privaten Schlüssel im Standardformat.

Jetzt benötigen Sie die externe/interne IP Ihrer Instanz (Sie können die interne IP verwenden, wenn Sie ein VPN verwenden).

Sie können die externe IP Ihrer VM auf zwei Arten herausfinden.

  1. Melden Sie sich wie gewohnt bei Ihrer VM an und finden Sie deren externe IP mit dem Befehl

    $ curl ifconfig.co

(Ich würde Ihnen empfehlen, die externe IP nicht zu verwenden, da es sich um eine dynamische IP handelt und diese irgendwann geändert wird. Darüber hinaus können Sie sie nur verwenden, wenn der GCP-Instanz durch Aktivieren des SSH-Ports die Anmeldung über eine externe IP gestattet ist.)

  1. Sie können sowohl interne als auch externe IP-Adressen in der GCP-Konsole finden.Seite(nur möglich, wenn Sie über Administratorrechte verfügen).

    • Link zum Bild, das diesen Punkt zeigt

Sobald Sie die interne oder externe IP Ihrer VM haben, können Sie den folgenden Befehl ausführen, um sich von Ihrer bevorzugten Shell aus anzumelden.

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

Antwort3

Sie können einen neuen Befehl erstellen und ihn in Ihrem Microsoft.PowerShell_profile.ps1 speichern:

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
}

Sie müssen nur den ersten Befehl dieser Funktion ändern. Ersetzen SieBenutzername@ml-ubuntu-18,Ihre ZoneUndIhre Projekt-IDmit deinen Werten.

Um das neue Profilskript zu verwenden, starten Sie das Terminal neu oder führen Sie es aus . $profile. Danach können Sie diesen Befehl verwenden.

Auf diese Weise verbinde ich mich mit der gcloud-VM, ohne mein schickes Windows-Terminalfenster zu verlassen :)

verwandte Informationen