Как безопасно настроить SSH-доступ к серверу с помощью ключей
В этом руководстве я покажу, как настроить SSH-подключение к серверу с использованием ключей с соблюдением базовых норм безопасности.
Шаг 1: Создание безопасного SSH-ключа
Генерируем ключ с современным алгоритмом и обязательным паролем:
ssh-keygen -t ed25519 -C "project-prod-login@beget.tech"
Важно:
- Укажите путь: ~/.ssh/project-prod-login
- Обязательно задайте надёжный пароль (passphrase) для ключа
- ed25519 безопаснее RSA при меньшей длине ключа
Шаг 2: Копирование ключа на сервер
Отправляем ключ безопасным способом:
ssh-copy-id -i ~/.ssh/project-prod-login login@beget.tech
Проверьте: на сервере должны быть правильные права:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Шаг 3: Безопасная настройка SSH-конфига
nano ~/.ssh/config
Добавьте с ограничениями:
Host project-prod HostName beget.tech User login Port 22 IdentityFile ~/.ssh/project-prod-login IdentitiesOnly yes ForwardAgent no
Почему это важно:
— запрещает автоматическую отправку всех ключейIdentitiesOnly yes
— отключает небезопасное перенаправление агентаForwardAgent no
Рекомендации по безопасности
- На сервере: отключите парольную аутентификацию в
/etc/ssh/sshd_config
PasswordAuthentication no→ затем
systemctl restart sshd - Измените порт SSH (не 22) для снижения брутфорс-атак
- Никогда не передавайте приватный ключ по незащищённым каналам
- Регулярно обновляйте ключи (раз в 6-12 месяцев)
- Храните резервную копию ключа в зашифрованном хранилище
Проверка безопасности
Убедитесь, что всё настроено правильно:
# Проверка прав доступа ls -la ~/.ssh # Приватный ключ должен быть: -rw------- (600) # Тест подключения ssh -v project-prod
Заключение
Ключевая аутентификация безопаснее паролей, но только при правильной настройке. Следуя этим рекомендациям, вы защитите сервер от 90% стандартных атак.
Помните: ваш приватный ключ — это как цифровой паспорт. Обращайтесь с ним соответственно.