Введение
SSH-ключей (Secure Shell) — это стандартизированный протокол для безопасного удалённого управления серверами. В этом руководстве мы рассмотрим следующие темы:
- Генерация SSH-ключей на Linux и Windows
- Настройка безопасного доступа
- Устранение наиболее распространенных ошибок
1. Создание SSH-ключей на разных операционных системах
🔑 На Linux и macOS
Генерация ключа Ed25519:
ssh-keygen -t ed25519 -C "your_email@example.com"
Ключ сохранится в следующих местах:
- Приватный ключ:
~/.ssh/id_ed25519
- Публичный ключ:
~/.ssh/id_ed25519.pub
Для устаревшего, но всё ещё поддерживаемого алгоритма RSA:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
🖥️ На Windows
Через PowerShell:
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\win_key"
Через PuTTY:
- Установите PuTTY и PuTTYgen.
- В PuTTYgen выберите алгоритм «Ed25519» и нажмите «Generate».
- Сохраните приватный ключ
.ppk
и публичный ключ.
2. Перенос ключей на сервер
Для Linux и macOS
Используйте команду ssh-copy-id
:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
Для Windows
- Скопируйте содержимое вашего публичного ключа
win_key.pub
. - На сервере создайте папку
.ssh
и добавьте ключ:
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. Настройка безопасности SSH
Оптимальная конфигурация в /etc/ssh/sshd_config
:
Port 2222 # Используйте нестандартный порт
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers your_user # Ограничьте доступ белым списком пользователей
Дополнительные меры безопасности:
- Fail2ban — защита от атак методом подбора паролей.
- UFW/iptables — ограничение доступа по IP-адресам:
sudo ufw allow from 192.168.1.100 to any port 2222
4. Распространённые ошибки и их решение
❌ «Server refused public-key signature»
Проверьте права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Убедитесь, что ключ действительно добавлен в authorized_keys
.
❌ Парольная аутентификация работает, несмотря на запрет
Проверьте наличие конфликтующих настроек:
sudo grep -r "PasswordAuthentication" /etc/ssh/
Отключите использование PAM:
UsePAM no
5. Сравнение методов аутентификации
Метод | Безопасность | Удобство | Рекомендация |
---|---|---|---|
Пароли | Низкая | Высокое | ❌ Запрещено |
RSA-ключ (4096 бит) | Средняя | Среднее | ⚠️ Только для старых систем |
Ed25519 | Высокая | Высокое | ✅ Рекомендовано |
2FA (Google Auth) | Максимальная | Низкое | Для критически важных серверов |
Пример правильной настройки прав доступа
Правильное управление правами доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Заключение
Теперь вы умеете:
- Генерировать SSH-ключи на любой операционной системе
- Настраивать безопасный доступ через SSH
- Решать распространенные проблемы