This commit is contained in:
NW
2025-12-22 19:35:31 +00:00
parent 0ad965f0a6
commit e9efead80d

View File

@@ -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