Impedir que o gcloud use o Putty (Google Cloud SDK no Windows)

Impedir que o gcloud use o Putty (Google Cloud SDK no Windows)

Ao usargoogle-cloud-sdkpara Windows, gcloud compute sshlançará um integradoMassa. É possível especificar um cliente ssh padrão diferente para gcloud compute ssho comando?

Responder1

Versões recentes do Cloud SDK para Windows vêm com executáveis ​​putty pré-empacotados (pasta dir/bin/sdk). Observando o código-fonte do gcloud, parece que o uso do PuTTY é codificado e atualmente não é possível escolher outro cliente SSH.

Responder2

Você pode fazer login na VM do GCP usando MobaXterm, Windows Terminal ou qualquer outro aplicativo de prompt de comando que suporte ssh. Tudo que você precisa é ochave privadae aIP interno/externoda sua instância do GCP (também conhecida como VM do GCP).

A chave privada geralmente éC:\Users\<username>\.ssh\google_compute_engine

Se você não encontrar esse arquivo, poderá saber seu caminho executando o comando gcloud login.

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

(--zone sinalizador é opcional.)

Na saída, você notará que a chave privada usada no comando terminará com uma .ppkextensão ( ppksignifica putty-private-key).

Se você navegar no Explorador de Arquivos no mesmo caminho, encontrará outro arquivo sem a .ppkextensão, que é a chave privada no formato padrão.

Agora você precisa do IP externo/interno da sua instância (você pode usar o IP interno se estiver em VPN).

Você pode descobrir o IP externo da sua VM de duas maneiras.

  1. faça login na sua VM normalmente e descubra seu IP externo usando o comando

    $ curl ifconfig.co

(Eu sugiro que você não use o IP externo, pois é um IP dinâmico e será alterado em algum momento e, além disso, você poderá usá-lo somente se a instância do GCP tiver permissão para fazer login via IP externo, habilitando a porta ssh)

  1. Você também pode encontrar IP interno/externo no Console do GCPpágina(possível apenas se você tiver direitos de administrador).

    • Link para a imagem que mostra este ponto

Depois de obter o IP interno ou externo da sua VM, você pode executar o comando abaixo para fazer login no seu shell favorito.

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

Responder3

Você pode criar um novo comando e salvá-lo em seu 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
}

Você só precisa alterar o primeiro comando desta função. Substituirnomedeusuário@ml-ubuntu-18,sua zonaeID do seu projetocom seus valores.

Para usar o novo script de perfil, reinicie o terminal ou execute . $profile. Depois disso, você pode usar este comando.

Dessa forma, eu me conecto ao gcloud VM sem sair da minha janela sofisticada do Terminal do Windows :)

informação relacionada