2 min read

Забудьте о паролях: Переходим на SSH-ключи во FreeBSD

Как пилот, я знаю цену чек-листам и безопасности. В мире серверов использование пароля для SSH — это «человеческий фактор», который лучше исключить. Пароли можно подобрать, перехватить или выудить. SSH-ключи практически невозможно взломать брутфорсом.

В этой статье мы настроим вход по ключам и полностью запретим аутентификацию по паролю на вашем сервере FreeBSD.


Шаг 1: Генерация ключей на вашем компьютере (Mac или PC)

Ключи создаются парой: приватный (остается у вас, это ваш «паспорт») и публичный (отправляется на сервер, это «замок»).

На вашем Mac или Linux-машине выполните:

Bash

ssh-keygen -t ed25519 -C "My-VPS-Key"

Я рекомендую алгоритм Ed25519 — он современнее, быстрее и безопаснее, чем классический RSA.

Система спросит, куда сохранить ключ и нужно ли установить passphrase.

Совет: Установите кодовую фразу. Даже если ваш ноутбук украдут, злоумышленник не сможет воспользоваться ключом без этого пароля.

Шаг 2: Копирование ключа на сервер

Самый простой способ — использовать встроенную утилиту:

Bash

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_vps_ip

Если утилиты нет, просто скопируйте содержимое файла id_ed25519.pub в файл ~/.ssh/authorized_keys на вашем сервере FreeBSD.


Шаг 3: Настройка SSH-демона на FreeBSD

Теперь самое важное — нужно сказать серверу, чтобы он перестал принимать пароли. Отредактируйте файл /etc/ssh/sshd_config:

Bash

# ee /etc/ssh/sshd_config

Найдите и измените (или добавьте) следующие строки:

Plaintext

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin dynamic-anycast # Или yes/no в зависимости от ваших нужд

Внимание! Перед тем как перезапускать SSH, убедитесь, что вы можете зайти на сервер по ключу в новом окне терминала. Не закрывайте текущую сессию, пока не проверите доступ, иначе рискуете заблокировать себя.


Шаг 4: Применение настроек

Если проверка прошла успешно, перезапускаем службу:

Bash

service sshd restart

Бонус для профи: Использование YubiKey

Если вы хотите поднять безопасность на уровень «Secret Service», можно использовать аппаратный ключ YubiKey. В последних версиях OpenSSH появилась поддержка типов ключей sk-ssh-ed25519@openssh.com.

В этом случае приватный ключ физически находится на токене, и для входа вам нужно не только вставить его в USB-порт, но и коснуться его пальцем. Это идеальный вариант для трейдинга и управления критической инфраструктурой, когда вы находитесь в пути.

Bash

# Генерация ключа с привязкой к токену
ssh-keygen -t ed25519-sk

Итог

Теперь ваш сервер в Европе стал практически невидимым для ботов-взломщиков. В сочетании с SSHGuard и WireGuard, вы построили эшелонированную оборону, которая не подведет, в какой бы точке мира вы ни находились.


Safe landings & secure connections!