eve-ng
November 25, 2021

SSH и SFTP для виртуальных машин на Google Cloud

На гугл-сервере есть отличная поддержка SSH, который нужен как сам по себе, так и для SFTP-подключения. Но иногда этих возможностей не хватает, поэтому можно настроить сервер под себя.

Сперва расскажу, как подключаться по SSH от разных пользователей, потом покажу как на основе этого получить SFTP-доступ.

Самый простой способ работать с SSH – установить терминальное приложение gcloud. Теперь командой gcloud compute ssh --project=АЙДИ_ПРОЕКТА --zone=ЗОНА ИМЯ_МАШИНКИ подключаемся к машинке. Если не заходили до этого в свой гугл-аккаунт, в терминале появится просьба и инструкция ко входу. gcloud сам создаст пользователя и SSH-ключи в первый раз. Теперь от этого пользователя можно заходить и по SFTP.

А теперь дополнительные настройки, без которых и так всё работает.

Свой SSH

После первого входа гугл создал вам ключи. Они лежат там, где и любая другая программа их положила, можно нагуглить эту папку. У меня – стандартная для мака ~/.ssh. Перейдёте в свою папку и увидите ключ. Его можно использовать для подключения к стандартному пользователю.

Для большего контроля можно вручную добавить ключи для других пользователей. Следующие действия проделываем на своём компьютере.

Генерируем ключи для пользователя student, приватный ключ будет в файле ~/.ssh/test, публичный в таком же файле с расширением .pub.

ssh-keygen -f ~/.ssh/test -C student

Passphrase – дополнительный, но необязательный пароль, который у вас попросит генератор. Этот пользователь будет использовать в виртуальной машинке, имя можно дать любое, как и название файла.

Выведем содержимое публичного ключа командой cat ~/.ssh/test.pub, вручную скопируем, оно нам сейчас понадобится. Ключ начинается словом ssh-rsa и заканчивается именем пользователя, для которого создан ключ, всё это копируем.

Переходим в раздел Metadata на гугл-сервере. Можно через меню поиска внутри сервера. Открываем вкладку SSH Keys, нажимаем Edit, Add item и вставляем в поле скопированный ключ. Получится так:

Сохраняем и ждём, пока появится надпись, что ключи сохранены. Машинку всё это время можно держать включённой.

После сохранения ключей со своего компьютера логинимся:

ssh -i ~/.ssh/test [email protected]

Здесь я указал путь к приватному ключу, пользователя@айпишник.машинки.

Получилось! Для выхода exit или Ctrl + D
Вообще тут я подключился к своему дебиану, но ссылку на эту инструкцию я буду указывать как инструкцию для EVE-NG. Чтоб никто не смущался, вывод в консоли после подключения будет отличаться, это ок :-)

SFTP

На основе существующих пользователей можно подключаться по SFTP. Для этого в разделе Metadata на сервере должен быть ключ на имя пользователя, его пара должна быть на вашем компьютере.

В любой программе нам понадобится тип подключения (sftp), айпи (нашей машинки), порт (если не меняли, то 22), имя пользователя, пароль (если есть), приватный ссш-ключ. Практически те же данные, что и при обычном ssh-подключении. Вот пример:

Это Cyberduck – FTP-клиент для мака. Чтоб появилось такое окно, я нажал Open Connection

После этого мы имеем полный доступ к данным, как будто они у нас на компьютере. Можно добавлять файлы и качать их.