Вопрос или проблема
Я новичок в области ИИ и в компьютерных науках в целом. У меня есть настольный компьютер, который работает как сервер для размещения модели ИИ. Модель общается со своим API через порт 5000. При этом, когда я настраивал настольный компьютер, я “включил переключатели ssh и удаленного рабочего стола в настройках”. Однако я не могу получить к нему доступ извне его сети, даже если я использую VPN моего офиса. Поэтому я хотел бы спросить, как мне настроить ssh для удаленного доступа к компьютеру из внешней сети, не нарушая связь между моделью и ее API. Честно говоря, я боюсь сделать что-то неправильно и нарушить работу модели или API или их взаимодействие. Моя версия Ubuntu 24.10. Заранее спасибо.
Ответ или решение
Для безопасной настройки SSH-доступа к вашему серверу с возможностью удаленного подключения извне сети необходимо провести несколько шагов и учесть ряд технических аспектов, чтобы не нарушить взаимодействие между вашей AI моделью и ее API, работающим на порте 5000. Следуйте предложенному плану, чтобы обеспечить бесперебойную и безопасную работу вашей системы:
Теория
Использование SSH (Secure Shell) — это надежный способ удаленного управления вашим сервером через защищенный канал связи. При правильной настройке SSH обеспечивает высокий уровень безопасности за счет шифрования данных и аутентификации пользователей. Однако предоставление доступа к серверу извне вашей сети может представлять определенные риски, такие как несанкционированное проникновение. Поэтому крайне важно, чтобы конфигурация SSH была выполнена правильно и с учетом всех возможных уязвимостей.
Пример
Рассмотрим пример настройки SSH для Ubuntu 24.10 с целью безопасного доступа извне сети:
-
Проверка и установка SSH-сервера: Убедитесь, что OpenSSH Server установлен и запущен на вашем устройстве. Это можно сделать с помощью команд:
sudo apt update sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh
-
Настройка маршрутизации (функция “порт-форвардинг”): Поскольку ваш сервер находится в локальной сети, необходимо настроить маршрутизатор для перенаправления внешних запросов на нужный порт вашего сервера:
- Войдите в панель управления вашего роутера.
- Найдите раздел "Переадресация портов" либо "Port Forwarding".
- Создайте правило для перенаправления: внешний порт (например, 2222) —> внутренний IP вашего Ubuntu-сервера и порт 22 (стандартный порт SSH).
-
Настройка брандмауэра (Firewall): Убедитесь, что брандмауэр открывает порты для входящих соединений. Например, с ufw (Uncomplicated Firewall):
sudo ufw allow 2222/tcp sudo ufw allow 5000/tcp sudo ufw enable
-
Изменение конфигурации SSH: Для повышения безопасности рекомендуется изменить стандартный порт SSH, увеличить безопасность через использование ключей SSH и ограничить доступ определенными IP-адресами:
-
Откройте конфигурационный файл SSH:
sudo nano /etc/ssh/sshd_config
-
Внесите изменения:
Port 2222 PermitRootLogin no PasswordAuthentication no AllowUsers имя_пользователя
-
Перезапустите сервис SSH:
sudo systemctl restart sshd
-
-
Настройка аутентификации по ключам: Сгенерируйте пару SSH-ключей на вашем клиентском устройстве и добавьте публичный ключ на сервер для безопасной аутентификации:
-
На клиенте создайте пару ключей:
ssh-keygen -t rsa -b 4096
-
Скопируйте публичный ключ на сервер:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip
-
Применение
После настройки убеждайтесь, что маршрут между вашим сервером и клиентом стабильно работает и проверяйте стабильность и работоспособность вашей AI модели. Для тестирования:
-
Попробуйте подключиться к серверу из внешней сети:
ssh -p 2222 user@external_ip
-
Проверьте работу API:
Откройте соединение к API, например, с помощью curl или другого HTTP-клиента, для проверки доступности взаимодействия через порт 5000 без перебоев.
Настоящая конфигурация требует регулярного ведения журнала доступа и обновления программ для своевременного устранения уязвимостей. Периодически проверяйте наличие обновлений для Ubuntu и OpenSSH, применяйте патчи безопасности и следите за то, чтобы ключи SSH оставались надежно защищенными. Это обеспечит безопасность и стабильность работы вашего сервера и AI модели.