Вам не нужен CLI gcloud для подключения к Cloud Shell.
Если вы запустите gcloud alpha cloud-shell ssh --log-http
, вы увидите, что на самом деле делает инструмент, поэтому вы можете вручную скопировать это.
Во-первых, убедитесь, что ваш открытый ключ SSH находится в среде, что можно сделать через API (это даже не нужно делать с сервера, к которому вы пытаетесь подключиться).from).
Затем необходимо запустить среду, что можно сделать с помощью этой конечной точки API , и дождаться завершения возвращенной операции, что можно сделать с помощью эта другая конечная точка API .Обратите внимание, что это может быть сделано из вашей среды (что потребует oauth-аутентификации), или вы можете сделать это из внешней службы (например, запрограммируйте Cloud Function , чтобы запустить среду Cloud Shell при вызове определенной конечной точки).
Наконец, после запуска среды вам нужно получить информацию для подключения к вашему экземпляру Cloud Shell, хотя эта конечная точка API (что, опять же, даже не нужносделано с сервера, с которого вы подключаетесь), и, наконец, подключитесь через SSH с сервера с этой информацией.
Это ограничит инструменты, необходимые на вашем сервере, простым клиентом SSH (который, вероятно, ужеустановлен).
Используя предоставленные мной ссылки, вы можете сделать все это вручную и проверить, правильно ли это работает.Однако это утомительно делать вручную, поэтому я, скорее всего, создаю облачную функцию, которая выполняет все необходимые вызовы API и возвращает информацию о соединении в теле запроса.Возможно, мне даже лень, чтобы функция возвращала явную команду ssh, которую нужно запустить, поэтому после подключения к серверу мне нужно просто запустить curl <my_function_URL>|sh
и все будет работать.
Если вы попытаетесь сделать что-то подобное, обязательно убедитесь, что это безопасно в вашей настройке (поэтому не добавляйте ненужные ключи в вашу среду Cloud Shell), так как я просто пишу это из верхней части моегои обладать открытой Облачной функцией чувствует себя несколько небезопасно (любой, кто вызывает эту Облачную функцию, по крайней мере, знает IP вашей среды Cloud Shell).Но, по крайней мере, это идея, которую вы могли бы изучить.