Забудьте о паролях: Переходим на 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!
Member discussion