.png)
Ao usargoogle-cloud-sdkpara Windows, gcloud compute ssh
lançará um integradoMassa. É possível especificar um cliente ssh padrão diferente para gcloud compute ssh
o 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 .ppk
extensão ( ppk
significa putty-private-key).
Se você navegar no Explorador de Arquivos no mesmo caminho, encontrará outro arquivo sem a .ppk
extensã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.
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)
Você também pode encontrar IP interno/externo no Console do GCPpágina(possível apenas se você tiver direitos de administrador).
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 :)