OpenSSH: безопасное управление сервером по SSH | Глоссарий FREEHOSTING

OpenSSH

OpenSSH Suite
OpenSSH — OpenSSH — открытая реализация протокола SSH для шифрованного удалённого управления серверами и передачи файлов. Включает сервер sshd, клиент ssh, утилиты scp, sftp, ssh-keygen и ssh-agent. Стандарт де-факто для администрирования Linux-серверов.

Определение простыми словами

OpenSSH — это пакет программ, через который администратор подключается к серверу из терминала, копирует файлы и пробрасывает порты. Всё это поверх зашифрованного канала, поэтому пароли и команды не видны провайдеру и сетевым посредникам. Альтернативы вроде telnet или rsh давно небезопасны и не используются.

В состав входят: демон sshd, клиент ssh, генератор ключей ssh-keygen, агент ssh-agent и утилиты scp, sftp. Поддерживает аутентификацию по паролю, ключам RSA, Ed25519, сертификатам и аппаратным токенам U2F.

Сравнение

Утилита Назначение Замена
ssh Подключение к серверу, проброс портов PuTTY, MobaXterm
sshd Серверный демон, принимает соединения Dropbear (на роутерах)
scp/sftp Копирование файлов поверх SSH rsync over SSH, FileZilla
ssh-keygen Генерация и конвертация ключей PuTTYgen
ssh-agent Кеш расшифрованных ключей Pageant в Windows

Кейсы использования

  • Деплой сайта на VPS — git pull через ssh-сессию по ключу без ввода пароля.
  • Бэкап БД — sftp или rsync over ssh выгружает дампы на резервный сервер.
  • Туннель к закрытой админке — `ssh -L 8080:localhost:80 user@srv` пробрасывает порт через шифрованный канал.
  • Ограничение доступа — только подсеть офиса в `AllowUsers` и отключение пароля.
  • Негативный сценарий: оставить порт 22 открытым с авторизацией по паролю и admin-логином — за сутки придёт несколько тысяч попыток брутфорса. Решение — ключи, fail2ban и нестандартный порт.

Технические детали

# Безопасная конфигурация /etc/ssh/sshd_config
Port 2222                          # сменить порт с 22
PermitRootLogin prohibit-password  # root только по ключу
PasswordAuthentication no          # пароли отключены
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
AllowUsers deploy admin            # белый список логинов

# Применить и перезапустить
sshd -t                            # проверка конфига
systemctl restart sshd

# Генерация надёжного ключа Ed25519
ssh-keygen -t ed25519 -a 100 -C "deploy@srv"

# Копирование публичного ключа на сервер
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 deploy@srv

# Проверка подключения с подробным логом
ssh -vvv -p 2222 deploy@srv

Частые вопросы

Стоит ли менять порт SSH с 22?

Это не защита, а гигиена: на 22 идёт 90% брутфорс-попыток, на 2222 — единицы. Логи становятся читаемыми, а fail2ban быстрее находит реальные угрозы.

Какой ключ выбрать — RSA или Ed25519?

Ed25519 короче, быстрее и надёжнее при равной стойкости. RSA-2048 берут только для совместимости со старым серверным ПО, RSA-1024 уже считается слабым.

Как пускать на сервер только по аппаратному токену?

Сгенерировать sk-ed25519-ключ через `ssh-keygen -t ed25519-sk`, добавить публичный в authorized_keys, отключить пароли. При логине OpenSSH потребует касание YubiKey.