.png)
Когда используешь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-адрес вашей виртуальной машины можно двумя способами.
войдите в свою виртуальную машину обычным способом и узнайте ее внешний IP с помощью команды
$ curl ifconfig.co
(Я бы рекомендовал вам не использовать внешний IP-адрес, так как это динамический IP-адрес, который в какой-то момент времени изменится, и, более того, вы сможете использовать его только в том случае, если экземпляру GCP разрешено входить через внешний IP-адрес путем включения порта SSH)
Вы также можете найти как внутренний, так и внешний 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 :)