90 lines
3.2 KiB
Markdown
90 lines
3.2 KiB
Markdown
# Работа с удалённой машиной 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)
|
||
|
||
Токен лежит в `secrets/gitea.token` (Gitea PAT, repository read+write).
|
||
|
||
```bash
|
||
TOKEN=$(cat /home/naeel/remote_dev/sless/secrets/gitea.token | tr -d '\n')
|
||
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 push https://naeel:${TOKEN}@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`
|