3.2 KiB
3.2 KiB
Работа с удалённой машиной 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
# Хост
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).
# Пуш с 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).
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 монтирование (восстановить если упало)
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