#!/bin/bash # Настройка SSH ключа и развертывание WireGuard на 149.154.64.19 set -e SERVER="ahau@149.154.64.19" KEY_FILE="$HOME/.ssh/ru_server_key" PUB_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDJ48JZfUVwmVILkNsOqrmywqxCOK3zkxU3+2Z8G01RR ru.hunab.app" echo "🔐 Настройка SSH и развертывание WireGuard" echo "═══════════════════════════════════════════" echo "" # Шаг 1: Проверка подключения с ключом echo "1️⃣ Проверяю существующее подключение..." if ssh -i "$KEY_FILE" -o PreferredAuthentications=publickey -o ConnectTimeout=5 -o StrictHostKeyChecking=no "$SERVER" "exit" 2>/dev/null; then echo "✅ SSH ключ уже настроен!" else echo "⚠️ SSH ключ не настроен, добавляю..." echo "" echo "📝 Введите пароль: w99z2fBSkO4gU" echo "" # Добавляем ключ на сервер ssh-copy-id -i "$KEY_FILE.pub" "$SERVER" || { echo "" echo "⚠️ Автоматическое добавление не сработало. Добавляю вручную..." cat "$KEY_FILE.pub" | ssh "$SERVER" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" } echo "" echo "✅ SSH ключ добавлен!" fi echo "" echo "2️⃣ Проверяю подключение с ключом..." if ssh -i "$KEY_FILE" -o PreferredAuthentications=publickey -o ConnectTimeout=5 "$SERVER" "echo '✅ Подключение работает!'" 2>/dev/null; then echo "✅ SSH ключ работает!" else echo "❌ Не удалось подключиться с ключом" exit 1 fi echo "" echo "3️⃣ Развертывание WireGuard на сервере..." echo "" ssh -i "$KEY_FILE" "$SERVER" << 'ENDSSH' set -e echo " 📁 Создание директорий..." sudo mkdir -p /opt/app/vpn/wireguard/config sudo chown -R ahau:ahau /opt/app/vpn echo " 🛑 Остановка старых контейнеров..." docker stop hunab-vpn-wireguard-ru 2>/dev/null || true docker rm hunab-vpn-wireguard-ru 2>/dev/null || true echo " 🚀 Запуск WireGuard контейнера..." cd /opt/app/vpn/wireguard docker run -d \ --name hunab-vpn-wireguard-ru \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Moscow \ -e SERVERURL=149.154.64.19 \ -e SERVERPORT=51820 \ -e PEERS=1 \ -e PEERDNS=8.8.8.8 \ -e INTERNAL_SUBNET=10.14.14.0 \ -v /opt/app/vpn/wireguard/config:/config \ -p 51820:51820/udp \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --restart unless-stopped \ linuxserver/wireguard:latest > /dev/null echo " ⏳ Ожидание создания конфигурации (45 секунд)..." sleep 45 echo " 🔥 Настройка Firewall..." sudo ufw allow 51820/udp comment 'WireGuard VPN RU' 2>/dev/null || true sudo ufw reload 2>/dev/null || true echo "" echo " ✅ WireGuard развернут и запущен!" echo "" docker ps | grep wireguard echo "" echo " 📄 Конфигурация клиента:" echo " ═══════════════════════════════" cat /opt/app/vpn/wireguard/config/peer1/peer1.conf echo " ═══════════════════════════════" ENDSSH echo "" echo "4️⃣ Получение конфигурации..." scp -i "$KEY_FILE" "$SERVER:/opt/app/vpn/wireguard/config/peer1/peer1.conf" docs/vpn/RuVPN.conf if [ -f docs/vpn/RuVPN.conf ]; then echo "" echo "✅ Конфигурация сохранена в docs/vpn/RuVPN.conf" echo "" echo "═══════════════════════════════════════════" echo "📱 ГОТОВО! Импортируйте файл на телефон:" echo "═══════════════════════════════════════════" echo "" cat docs/vpn/RuVPN.conf echo "" echo "🎉 Всё готово! Подключайтесь через WireGuard!" else echo "" echo "⚠️ Не удалось скопировать конфигурацию" fi