SSH на Linux: подключение и настройка

Это руководство объясняет, как включить 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 для удалённого доступа.

Что будем искать? Например,программа