Это руководство объясняет, как включить SSH на Linux-системе и удалённо к ней подключаться. Это распространённая задача, особенно при работе с виртуальными частными серверами (VPS) от таких провайдеров, как Amazon EC2, DigitalOcean или Google Cloud. Обычно SSH включён по умолчанию, и подключение к VPS осуществляется с помощью предоставленных учетных данных (имя пользователя и пароль).
SSH-протокол и порт 22
Для удалённого подключения используется SSH-протокол, шифрующий всю коммуникацию между двумя хостами через открытую сеть, например, интернет. SSH использует TCP-порт 22. Для подключения к серверу через SSH этот порт должен быть открыт. В этом руководстве показано, как открыть этот порт в Docker-контейнере и подключиться к контейнеру Ubuntu с локального компьютера (в примере — macOS, но это может быть Windows или любая другая операционная система). Демонстрируется удалённое подключение, осуществляемое локально: с локального компьютера к Docker-контейнеру, что аналогично подключению к удалённому серверу.
Подготовка и настройка Docker-контейнера
Создадим Docker-контейнер на основе образа Ubuntu, используя опцию -p для публикации внутреннего порта 22 на внешний порт 2222:
docker run -id -p 2222:22 ubuntu
Эта команда создаёт контейнер, публикуя внутренний порт 22 (SSH) на внешний порт 2222 локального компьютера. Подключение к контейнеру через SSH будет осуществляться по порту 2222.
Установка и запуск SSH-сервера
После создания контейнера, попробуйте выполнить команду ssh. Появится сообщение об отсутствии команды, поскольку SSH не входит в базовый образ Ubuntu. Установите пакет openssh-server:
apt-get update
apt-get install openssh-server
Установка может занять время и потребовать дополнительного места на диске. В процессе сгенерируется ключ RSA, необходимый для SSH.
Проверьте запуск сервиса SSH:
systemctl status ssh
Если сервис не запущен, запустите его:
systemctl start ssh
И снова проверьте статус:
systemctl status ssh
SSH должен быть запущен, и можно попробовать подключиться к контейнеру.
Создание пользователя
В данный момент вход выполнен от имени пользователя root. По соображениям безопасности, подключения по SSH как root обычно запрещены. Создайте нового пользователя:
adduser <имя_пользователя>
Команда adduser создаёт пользователя, инициализирует домашний каталог и устанавливает пароль в интерактивном режиме.
Безопасность
Важно помнить о безопасности и не использовать пользователя root для удалённого доступа.
В этом руководстве показано, как включить SSH на Linux-сервере, используя Docker-контейнер. Был установлен пакет openssh-server, запущен сервис SSH и создан новый пользователь для повышения безопасности. Теперь можно подключаться к серверу удалённо через SSH, используя соответствующие учетные данные и порт. Помните о важности безопасности и не используйте пользователя root для удалённого доступа.