docs: инструкция по работе с удалённой VM через SSH

This commit is contained in:
Naeel
2026-03-12 08:16:59 +03:00
parent 824dad7969
commit cea13cf239
+87
View File
@@ -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 <branch>'
```
## 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 <branch>
'
```
## 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`