Article

Свой VPS на Hetzner + VSCode: SSH-ключи и зачем это нужно

Просто и без эзотерики: что такое VPS, зачем он, как создать SSH-ключи на Windows, как добавить их в Hetzner и подключиться к серверу из VSCode через Ctrl+Shift+P. С картинками.

ГайдHetznerVSCode9 мин
Мадияр Хамзанов
Мадияр Хамзанов
26 мая 2026

Если вы уже прочитали мой разбор Railway vs Hetzner и решили взять VPS — следующий шаг страшит: «А как я к нему вообще подключусь? Что такое SSH-ключи? Я ничего не понимаю про шифрование».

Сейчас разберём всё на пальцах — без терминала-мафии и красивых слов про криптографию. В конце вы откроете VSCode, нажмёте Ctrl+Shift+P и будете писать код прямо на сервере, как будто это второй ноутбук в облаке.

TL;DR

€5
в месяц
за полноценный сервер 24/7
15 мин
настройка
от регистрации до VSCode
4
шага
ключ → сервер → VSCode → готово
0
программ
кроме VSCode — всё встроено
Что в итоге. У вас будет «второй компьютер» в облаке — за €5/мес, всегда онлайн, доступный из VSCode так же удобно, как ваша локальная папка с проектами. На нём можно поднять Airflow, Docker, парсеры, Postgres — всё что нужно для аналитики и pet-проектов.

1. Что такое VPS на пальцах

VPS (Virtual Private Server) — это обычный компьютер, который стоит в дата-центре где-то в Германии и работает 24 часа в сутки. У него есть процессор, оперативка, диск и интернет. Только клавиатуры и монитора нет — вы заходите на него удалённо.

Думайте о нём как о втором ноутбуке, который вы поставили в шкаф и никогда не выключаете. С двумя бонусами:

  • Он не садится, не падает с дивана, и его не заливает кофе.
  • У него есть постоянный IP-адрес — можно раздавать ссылки на свои сервисы, к нему можно стучаться извне.
Почему именно Hetzner? Это немецкий хостинг с лучшим соотношением цена/производительность в Европе. €4–8 в месяц за машину, на которой реально что-то крутится. Альтернативы (Vercel, Railway) удобнее, но в 10–25 раз дороже за тот же ресурс — я подробно сравнивал их в отдельной статье.

2. «А зачем VPS, если у меня есть ноут?»

Самый частый вопрос. Ответ: ноут отлично подходит для того, чтобы писать код. Но для того, чтобы код работал круглосуточно — он не годится.

Компьютер, который не выключается
Закрыли ноутбук — VPS работает дальше. Уехали в отпуск — он работает. ETL ночью, парсеры, cron — всё это нужно где-то крутить 24/7.
Можно поставить что угодно
Airflow для ETL, Postgres, ClickHouse, Docker, n8n, Coolify, свои API. Хоть Minecraft-сервер. Это полноценный Linux, не песочница.
Вайбкодить из любого места
Открыли VSCode на любом ноутбуке — подключились к серверу — продолжаете работать. Все ваши проекты, все данные, окружение — в одном месте.
Стабильный IP-адрес
С него можно дёргать API, парсить, рассылать письма. Не «мой ноут на домашнем Wi-Fi», а нормальный продакшн-адрес.
Конкретные примеры из жизни. Парсер 2ГИС, который каждое утро в 6:00 собирает новые отзывы. Airflow с 20 задачами, которые гоняют ETL по AmoCRM. n8n, который ловит вебхуки от Sipuni и кидает их в Postgres. Всё это невозможно делать с ноутбука, потому что вы его закрываете и уходите спать. А сервер — нет.

3. SSH-ключи — без эзотерики

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

Представьте, что вы ставите на сервер сверхтехнологичный замок. У этого замка есть три понятия:

1
Приватный ключ (id_ed25519)
Это ваш физический ключ от замка. Лежит в кармане (на компе). Никому не показываете. Украли — зашли в ваш сервер без стука.
2
Публичный ключ (id_ed25519.pub)
Это замок, который вы вешаете на дверь сервера. Можно раздавать всем — секрета в нём нет, это просто ответная часть для вашего ключа.
3
Отпечаток (Fingerprint)
Короткая «татуировка» ключа. Чтобы не сверять глазами простыню текста, смотрите на отпечаток. Совпал — значит ключ тот самый. Никуда не «шлёте», это просто справка для глаз.
Главное правило. Приватный ключ (без расширения .pub) никуда никому не показываете. Никогда. Даже мне. Даже в чат поддержки Hetzner. Это ваш секрет — он остаётся у вас на компе.

4. Создаём ключи на Windows (2 минуты)

На Windows 10/11 это делается ровно как на Linux — никакой PuTTY и сторонних программ не нужно. SSH-клиент уже встроен в систему с 2018 года.

Шаг 1 — открыть терминал

Нажмите Win + R, введите cmd (или powershell) и Enter.

Шаг 2 — введите команду
ssh-keygen -t ed25519 -C "my_laptop"
  • -t ed25519 — тип ключа (самый современный и быстрый).
  • -C — комментарий, чтобы потом вы сами понимали, что это за ключ.
Шаг 3 — жмите Enter на все вопросы
  • Where to save? — Enter (стандартная папка).
  • Enter passphrase? — Enter (пустой пароль, чтобы не вводить его каждый раз).
CMD-команда ssh-keygen -t ed25519 для создания SSH-ключей
Команда генерации ключей в обычном Windows-терминале — никаких сторонних программ

Где искать результат

После команды появится папка по адресу:

C:\Users\Ваше_Имя\.ssh\

Внутри — два файла:

  • id_ed25519 ваш секрет. Лежит здесь, не трогаете.
  • id_ed25519.pub замок. Открываете блокнотом, копируете весь текст — это то, что нужно отдать Hetzner.
Папка .ssh в профиле Windows — здесь лежат id_ed25519 и id_ed25519.pub
Папка C:\Users\Ваше_Имя\.ssh — два файла: приватный (без расширения) и публичный с .pub

Что куда «слать»

Что имеемКуда это девать
Приватный ключ (id_ed25519)Никуда. Лежит на вашем ПК и никогда оттуда не уходит.
Публичный ключ (id_ed25519.pub)Копируете текст из файла → вставляете в панель Hetzner.
Отпечаток (fingerprint)Просто смотрите глазами в панели, чтобы убедиться: «Ага, это мой».

5. Добавляем публичный ключ в Hetzner

Зашли в Hetzner Cloud Console → проект → раздел Security → SSH Keys. Дальше — две картинки и два клика.

Hetzner Cloud Console — кнопка Add SSH Key для добавления нового ключа
Куда нажать, чтобы добавить новый SSH-ключ в проект Hetzner
Окно Add SSH Key в Hetzner — поле для вставки публичного ключа
Вставляете содержимое id_ed25519.pub в поле Key. Имя — любое, для себя
Как открыть файл .pub. Откройте Проводник Windows по адресу C:\Users\Ваше_Имя\.ssh\ → правый клик на id_ed25519.pub → «Открыть с помощью» → Блокнот. Выделите весь текст (Ctrl+A), скопируйте (Ctrl+C), и вставьте в поле «Key» в Hetzner.

После этого при создании сервера Hetzner спросит «какой ключ привязать?» — выбираете свой, и сервер сразу запустится с уже настроенным доступом. Пароль вводить нигде не нужно.

6. Подключаемся к серверу из VSCode

Это самая магическая часть. VSCode умеет работать с удалённым сервером как с локальной папкой — открываете проект на сервере, редактируете файлы, запускаете команды в терминале, ставите расширения — всё прямо там. Это и есть «второй компьютер в облаке».

Шаг 1 — ставим расширение

Откройте VSCode → панель Extensions (Ctrl+Shift+X) → найдите Remote — SSH от Microsoft → Install. Это официальное расширение, ставьте смело.

Шаг 2 — открываем командную палитру

Нажмите Ctrl + Shift + P — это главное сочетание в VSCode, через него вы вызываете вообще любую команду. Запоминайте.

Шаг 3 — вводим команду

Начните печатать Remote-SSH: Connect to Host — выберите из списка.

Затем «Add New SSH Host» → введите:

ssh root@123.45.67.89

Где 123.45.67.89 — IP вашего сервера из панели Hetzner.

Шаг 4 — подключаемся

VSCode откроет новое окно, спросит тип ОС (выбираете Linux), подключится по вашему ключу — без пароля. Слева снизу появится зелёная плашка SSH: 123.45.67.89. Поздравляю — вы внутри сервера.

Что теперь. Открываете в VSCode папку на сервере (например /root/projects) — и это ваша новая рабочая среда. Файлы редактируются прямо там, терминал ходит по серверу, Claude Code работает с реальной файловой системой сервера. Вы сидите в обычном VSCode, но всё происходит в облаке.

7. Config-файл — раз настроил и забыл

В предыдущем шаге мы вводили ssh root@49.13.142.218 руками. VSCode записал это в специальный config-файл — и в следующий раз вам уже не придётся вводить ничего, кроме имени сервера.

Это и есть то, ради чего мы создавали ключи. Один раз настроили — и подключение к серверу становится одной кнопкой в командной палитре.

Файл лежит здесь:

C:\Users\Ваше_Имя\.ssh\config

Если его нет — создайте обычным блокнотом (имя файла так и называется: config, без расширения). Внутрь впишите:

Host hetzner-main
    HostName 49.13.142.218
    User root
    IdentityFile ~/.ssh/id_ed25519
    Port 22
  • Host hetzner-main — короткий ник для сервера, как вам удобно. Под этим именем он появится в списке VSCode.
  • HostName — IP-адрес вашего сервера из панели Hetzner. Подставьте свой вместо 49.13.142.218 — он у каждого свой.
  • User root — пользователь, под которым заходим (по умолчанию на Hetzner это root, потом можно завести отдельного).
  • IdentityFile тот самый путь к приватному ключу, который мы делали в шаге 4. На Windows запись ~/.ssh/id_ed25519 работает — это короткая запись для C:\Users\Ваше_Имя\.ssh\id_ed25519.
Файл ~/.ssh/config в VSCode с прописанным Host, HostName, User и IdentityFile
Готовый ~/.ssh/config — Host, HostName, User, IdentityFile в правильных полях
Что это даёт. Теперь Ctrl + Shift + P Remote-SSH: Connect to Host → в списке появится hetzner-main — один клик, и вы внутри. Никаких IP вспоминать не нужно, никаких паролей вводить тоже. Взял, поставил, подключился — ради этого мы и проходили всю историю с ключами.
Серверов может быть несколько. Просто допишите ещё один блок Host другое_имя ниже в том же файле. У меня в config обычно лежит 3–5 серверов: основной prod, staging, машина под Airflow, тестовая под парсеры. Все в одном выпадающем списке VSCode.

8. Что вы только что получили

Если все шаги прошли — у вас на руках есть три серьёзные вещи.

Полноценный сервер 24/7
На нём можно поднять Airflow, Docker, n8n, Postgres, Coolify, любой парсер с расписанием. Закрыли ноут — он работает дальше.
VSCode-like среда в облаке
Сели за любой ноутбук — открыли VSCode — подключились к серверу — продолжили с того же места. Claude Code, расширения, всё работает.
Понимание SSH-ключей
То, что 90% разработчиков не могут объяснить простыми словами, у вас теперь сидит в голове. Это та же модель, что и в GitHub, AWS, GCP, любом облаке.
Когда я первый раз настроил Remote-SSH из VSCode в свой Hetzner, я сидел минут десять и тыкал в файлы — не верил, что это правда так работает. Привычное окно VSCode, но всё происходит на сервере в Германии. С тех пор это мой основной рабочий процесс — локальный ноут только для текстов и созвонов.

Чеклист — повторите по шагам

  • 1Зарегистрироваться в Hetzner Cloud, привязать карту.
  • 2Открыть терминал на Windows: Win+Rcmd.
  • 3Создать ключи: ssh-keygen -t ed25519 -C "my_laptop", везде Enter.
  • 4Открыть id_ed25519.pub блокнотом, скопировать весь текст.
  • 5В Hetzner → Security → SSH Keys → Add → вставить текст.
  • 6Создать сервер (CAX11/CAX21, Ubuntu 24.04), при создании выбрать свой SSH-ключ.
  • 7В VSCode поставить расширение Remote — SSH.
  • 8Ctrl+Shift+P → Remote-SSH: Connect to Host → root@IP → готово.
  • 9Прописать сервер в ~/.ssh/config (Host, HostName, User, IdentityFile) — чтобы потом подключаться одним кликом без ввода IP.

Всё. У вас есть свой сервер в облаке и удобный способ работать с ним из любого ноутбука. Дальше — ставьте Docker, Airflow, любые свои сервисы. Закрытый ноут больше не помеха.

Мадияр Хамзанов
Мадияр Хамзанов
mkhamzanov.com

Все статьи

Блог