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-туннели — полезная тема, показывающая практический опыт (проброс порта БД для локальной разработки).