From e9efead80d709a7e1cdb2b323013d95d6c4d0482 Mon Sep 17 00:00:00 2001 From: NW Date: Mon, 22 Dec 2025 19:35:31 +0000 Subject: [PATCH] v3.1 --- install_ssh_tunnel.sh | 84 +++++++++++++++++++++++++++++++++---------- 1 file changed, 66 insertions(+), 18 deletions(-) diff --git a/install_ssh_tunnel.sh b/install_ssh_tunnel.sh index 591611b..78f58fc 100644 --- a/install_ssh_tunnel.sh +++ b/install_ssh_tunnel.sh @@ -4,8 +4,9 @@ # Использует autossh и systemd для обеспечения стабильного и постоянного соединения. # # Использование: -# 1. Установка: sudo bash tunnel-manager.sh install -# 2. Запуск: sudo bash tunnel-manager.sh menu +# 1. Запуск одной командой (автоустановка + меню): curl -s https://.../install_ssh_tunnel.sh | sudo bash +# 2. Установка: sudo bash tunnel-manager.sh install +# 3. Запуск меню: sudo bash tunnel-manager.sh menu # # --- Глобальные переменные и конфигурация --- @@ -108,6 +109,34 @@ load_vps_settings() { return 1 } +# Функция отображения публичного ключа +show_public_key() { + echo -e "${BOLD}${CYAN}--- Публичный ключ для копирования на VPS ---${NC}" + if [ -f "/root/.ssh/id_rsa.pub" ]; then + echo -e "${GREEN}Ключ RSA:${NC}" + cat /root/.ssh/id_rsa.pub + echo "" + fi + read -p "Нажмите Enter для продолжения..." +} + +# Функция проверки SSH подключения +check_ssh_connection() { + if ! load_vps_settings; then + log_message "Сначала необходимо настроить VPS (опция 1)." "$RED" + return 1 + fi + + echo -e "${CYAN}Проверка подключения к $VPS_USER@$VPS_HOST:$VPS_PORT...${NC}" + if timeout 10 ssh -p "$VPS_PORT" -o BatchMode=yes -o ConnectTimeout=5 "$VPS_USER@$VPS_HOST" "echo 'SSH Connection OK'" 2>/dev/null; then + echo -e "${GREEN}✓ SSH подключение работает${NC}" + return 0 + else + echo -e "${RED}✗ SSH подключение не работает${NC}" + return 1 + fi +} + # --- Основные функции --- # 1. Установка зависимостей и настройка системы @@ -882,21 +911,40 @@ main_menu() { } # --- Точка входа --- -case "$1" in - install) - install_manager - ;; - menu) +# Главное изменение: если скрипт запущен без аргументов, выполняем автоматическую установку и запуск меню +if [[ $# -eq 0 ]]; then + echo -e "${BOLD}${CYAN}SSH Tunnel Manager v1.0${NC}" + echo -e "Автоматический запуск установки и меню..." + + # Проверяем, установлен ли уже скрипт + if [ -f "/usr/local/bin/tunnel-manager" ]; then + echo -e "${YELLOW}Менеджер уже установлен. Запуск меню...${NC}" main_menu - ;; - *) - echo -e "${BOLD}${CYAN}SSH Tunnel Manager v1.0${NC}" - echo -e "Использование: sudo bash $0 {install|menu}" - echo -e " ${BOLD}install${NC} - Устанавливает зависимости и копирует скрипт в /usr/local/bin/tunnel-manager" - echo -e " ${BOLD}menu${NC} - Запускает интерактивное меню управления туннелями" - echo "" - echo -e "Рекомендуемый первый запуск: ${BOLD}sudo bash $0 install${NC}" - ;; -esac + else + echo -e "${GREEN}Начинаем установку...${NC}" + install_manager + echo -e "${GREEN}Установка завершена. Запуск меню...${NC}" + main_menu + fi +else + case "$1" in + install) + install_manager + ;; + menu) + main_menu + ;; + *) + echo -e "${BOLD}${CYAN}SSH Tunnel Manager v1.0${NC}" + echo -e "Использование:" + echo -e " 1. Запуск одной командой (автоустановка + меню):" + echo -e " curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh | sudo bash" + echo -e " 2. Только установка: sudo bash $0 install" + echo -e " 3. Только меню: sudo bash $0 menu" + echo "" + echo -e "После установки можно использовать: sudo tunnel-manager menu" + ;; + esac +fi -exit 0 +exit 0 \ No newline at end of file