Gymterview
middle

Как настроить SSH-сервер в Ubuntu?

SSH (Secure Shell) — протокол для безопасного удалённого доступа к серверу. В Ubuntu 24.04 используется OpenSSH.

Установка

Пример
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
sudo systemctl enable ssh

Конфигурация безопасности

Файл /etc/ssh/sshd_config:

Пример
Port 2222                        # Изменить порт (по умолчанию 22)
PermitRootLogin no               # Запретить вход root по SSH
AllowUsers developer deployer    # Разрешить только определённых пользователей
PasswordAuthentication no        # Отключить пароли (только ключи)
PubkeyAuthentication yes         # Включить аутентификацию по ключам
PermitEmptyPasswords no          # Отключить пустые пароли
MaxAuthTries 3                   # Ограничить попытки аутентификации
ClientAliveInterval 300          # Таймаут неактивного соединения
X11Forwarding no                 # Отключить X11 (если не нужен)
Пример
sudo sshd -t                    # Проверить конфигурацию на ошибки
sudo systemctl restart ssh      # Применить изменения

Настройка SSH-ключей

Пример
# На клиенте: сгенерировать ключи
ssh-keygen -t ed25519 -C "developer@example.com"

# Скопировать публичный ключ на сервер
ssh-copy-id -p 2222 developer@server-ip

Полезные SSH-возможности

Пример
# Подключение
ssh -p 2222 developer@server-ip

# Копирование файлов
scp file.jar developer@server-ip:/opt/myapp/
scp -r directory developer@server-ip:/opt/myapp/

# SSH-туннель (проброс порта)
ssh -L 5432:localhost:5432 developer@server-ip

Конфигурация клиента ~/.ssh/config

Пример
Host myserver
    HostName 192.168.1.100
    User developer
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

После чего подключение: ssh myserver

На собеседовании: ключевое — знать, как отключить вход по паролю и настроить ключи. Частая ошибка — оставлять PermitRootLogin yes и PasswordAuthentication yes на production-сервере. SSH-туннели — полезная тема, показывающая практический опыт (проброс порта БД для локальной разработки).