Запретить gcloud использовать Putty (Google Cloud SDK на Windows)

Запретить gcloud использовать Putty (Google Cloud SDK на Windows)

Когда используешьgoogle-cloud-sdkдля Windows, gcloud compute sshзапустит встроенныйШпатлевка. Можно ли указать другой клиент SSH по умолчанию для gcloud compute sshкоманды?

решение1

Последние выпуски Cloud SDK для Windows поставляются с предварительно упакованными исполняемыми файлами Putty (папка dir/bin/sdk). Если взглянуть на исходный код gcloud, то становится ясно, что использование PuTTY жестко запрограммировано, и в настоящее время невозможно выбрать другой SSH-клиент.

решение2

Вы можете войти в GCP VM с помощью MobaXterm, Windows Terminal или любого другого приложения командной строки, которое поддерживает ssh. Все, что вам нужно, этозакрытый ключивнутренний/внешний IPвашего экземпляра GCP (он же GCP VM).

Закрытый ключ обычноC:\Users\<username>\.ssh\google_compute_engine

Если вы не нашли этот файл, вы можете узнать путь к нему, выполнив команду входа в gcloud.

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

(флаг --zone необязателен.)

Из выходных данных вы заметите, что закрытый ключ, используемый в команде, будет заканчиваться расширением .ppk( ppkобозначает putty-private-key).

Если вы откроете Проводник по тому же пути, вы найдете еще один файл без расширения .ppk— это закрытый ключ в стандартном формате.

Теперь вам нужен внешний/внутренний IP-адрес вашего экземпляра (вы можете использовать внутренний IP-адрес, если вы используете VPN).

Узнать внешний IP-адрес вашей виртуальной машины можно двумя способами.

  1. войдите в свою виртуальную машину обычным способом и узнайте ее внешний IP с помощью команды

    $ curl ifconfig.co

(Я бы рекомендовал вам не использовать внешний IP-адрес, так как это динамический IP-адрес, который в какой-то момент времени изменится, и, более того, вы сможете использовать его только в том случае, если экземпляру GCP разрешено входить через внешний IP-адрес путем включения порта SSH)

  1. Вы также можете найти как внутренний, так и внешний IP-адрес в консоли GCP.страница(возможно только если у вас есть права администратора).

    • Ссылка на изображение, показывающее эту точку

Узнав внутренний или внешний 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. После этого вы можете использовать эту команду.

Таким образом я подключаюсь к виртуальной машине gcloud, не покидая своего модного окна Windows Terminal :)

Связанный контент