From cea13cf2392f35504beed33aacfaab12fd1d6891 Mon Sep 17 00:00:00 2001 From: Naeel Date: Thu, 12 Mar 2026 08:16:59 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B5=20=D1=81=20=D1=83=D0=B4=D0=B0=D0=BB=D1=91?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B9=20VM=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=20SSH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/infrastructure/remote-dev-workflow.md | 87 +++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 doc/infrastructure/remote-dev-workflow.md diff --git a/doc/infrastructure/remote-dev-workflow.md b/doc/infrastructure/remote-dev-workflow.md new file mode 100644 index 0000000..6484cc6 --- /dev/null +++ b/doc/infrastructure/remote-dev-workflow.md @@ -0,0 +1,87 @@ +# Работа с удалённой машиной Nubes + +Дата: 2026-03-12 + +## Проблема + +Локальный терминал Copilot нестабилен из-за VPN — команды зависают, таймауты. +**Весь код физически живёт на удалённой Ubuntu VM**, доступной по SSH. + +## Архитектура + +``` +Локальная машина (Krupski) + └── SSHFS → /home/naeel/remote_dev → naeel@5.172.178.213:/home/naeel/terra + └── sless/ ← реальный репозиторий +``` + +## Подключение к VM + +```bash +# Хост +VM_HOST=naeel@5.172.178.213 +VM_KEY=/home/naeel/.ssh/id_ed25519 # ~/.ssh/id_ed25519 = копия secrets/naeel_vm_id_ed25519 + +# Проверить подключение +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 "hostname && whoami" + +# Выполнить команду удалённо +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 "cd /home/naeel/terra/sless && <команда>" +``` + +## Путь к репозиторию на VM + +``` +/home/naeel/terra/sless +``` + +## Git push через SSH (Gitea) + +Remote origin использует HTTPS → нужен SSH для беспарольного пуша. + +На VM уже лежит ключ `~/.ssh/gitea_key` (тот же ключ, что `id_ed25519`, зарегистрирован в Gitea). + +```bash +# Пуш с VM +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 \ + 'cd /home/naeel/terra/sless && \ + GIT_SSH_COMMAND="ssh -i ~/.ssh/gitea_key -o StrictHostKeyChecking=no" \ + git push git@gitea-naeel.giteak8s.services.ngcloud.ru:naeel/sless.git ' +``` + +## Gitea SSH ключи + +Ключ `~/.ssh/id_ed25519` зарегистрирован в Gitea: +- Email: tazet@narod.ru +- Fingerprint: `SHA256:WUAvQXXmRUr6jHHdkMDljKKBUEQ8ot2cTU3YSixqYe4` + +## Типовой git workflow (commit + push) + +```bash +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 ' + cd /home/naeel/terra/sless + git add <файлы> + git commit -m "<сообщение>" + GIT_SSH_COMMAND="ssh -i ~/.ssh/gitea_key -o StrictHostKeyChecking=no" \ + git push git@gitea-naeel.giteak8s.services.ngcloud.ru:naeel/sless.git +' +``` + +## SSHFS монтирование (восстановить если упало) + +```bash +sshfs \ + -o IdentityFile=/home/naeel/.ssh/id_ed25519 \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/dev/null \ + -o reconnect \ + -o ServerAliveInterval=15 \ + -o ServerAliveCountMax=3 \ + naeel@5.172.178.213:/home/naeel/terra /home/naeel/remote_dev +``` + +## Примечания + +- `secrets/naeel_vm_id_ed25519` и `~/.ssh/id_ed25519` — одинаковые ключи (SHA256 совпадает) +- При зависании локального терминала — выполнять команды через SSH на VM напрямую +- Git config на VM настроен: `user.name=Naeel`, `user.email=naeel@nubes.ru`