120 lines
4.4 KiB
Bash
Executable File
120 lines
4.4 KiB
Bash
Executable File
#!/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
|
||
|
||
|
||
|