Evite que gcloud use Putty (google cloud sdk en Windows)

Evite que gcloud use Putty (google cloud sdk en Windows)

Cuando usasgoogle-cloud-sdkpara Windows, gcloud compute sshlanzará una función incorporadaMasilla. ¿Es posible especificar un cliente ssh predeterminado diferente para gcloud compute sshel comando?

Respuesta1

Las versiones recientes de Cloud SDK para Windows vienen con ejecutables de PuTTY preempaquetados (carpeta dir/bin/sdk). Al observar el código fuente de gcloud, parece que el uso de PuTTY está codificado y actualmente no es posible elegir otro cliente SSH.

Respuesta2

Puede iniciar sesión en GCP VM usando MobaXterm, Windows Terminal o cualquier otra aplicación de símbolo del sistema que admita ssh. Todo lo que necesitas es elllave privaday elIP interna/externade su instancia de GCP (también conocida como GCP VM).

La clave privada suele serC:\Users\<username>\.ssh\google_compute_engine

Si no encuentra ese archivo, puede conocer su ruta ejecutando en seco el comando de inicio de sesión de gcloud.

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

(El indicador de zona es opcional).

En el resultado, notará que la clave privada utilizada en el comando terminará con una .ppkextensión ( ppksignifica clave privada de PuTTY).

Si navega por el Explorador de archivos en la misma ruta, encontrará otro archivo sin la .ppkextensión, esa es la clave privada en el formato estándar.

Ahora necesitas la IP externa/interna de tu instancia (puedes usar la IP interna si estás en una VPN).

Puede averiguar la IP externa de su VM de dos formas.

  1. inicie sesión en su VM normalmente y averigüe su IP externa usando el comando

    $ curl ifconfig.co

(Le sugeriría que no use la IP externa ya que es una IP dinámica y se cambiará en algún momento y, además, podrá usarla solo si la instancia de GCP puede iniciar sesión a través de una IP externa habilitando el puerto ssh)

  1. También puede encontrar IP interna y externa en GCP Consolepágina(solo es posible si tienes derechos de administrador).

    • Enlace a la imagen que muestra este punto.

Una vez que tenga la IP interna o externa de su VM, puede ejecutar el siguiente comando para iniciar sesión desde su shell favorito.

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

Respuesta3

Puede crear un nuevo comando y guardarlo en su 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
}

Sólo tienes que cambiar el primer comando de esta función. Reemplazarnombre de usuario@ml-ubuntu-18,tu-zonaysu-id-de-proyectocon tus valores.

Para usar el nuevo script de perfil, reinicie la terminal o ejecute . $profile. Después de eso, puedes usar este comando.

De esta manera me conecto a gcloud VM sin salir de mi elegante ventana de Terminal de Windows :)

información relacionada