Разберу пошагово, как отключить авторизацию по паролю и перейти на авторизацию по SSH‑ключу.
Шаг 1. Генерация SSH‑ключа на клиентской машине
Выполните в терминале:
ssh-keygen -t rsa -b 4096
При запросе места сохранения нажмите Enter для использования пути по умолчанию (~/.ssh/id_rsa). При желании задайте парольную фразу для дополнительной защиты ключа (или оставьте поле пустым).
Шаг 2. Копирование публичного ключа на сервер
Способ 1: с помощью ssh-copy-id (простейший вариант):
ssh-copy-id username@server_ip
Замените username на имя пользователя на сервере, а server_ip — на IP‑адрес сервера. При первом подключении введите пароль для авторизации.
Способ 2: ручное копирование (если ssh-copy-id недоступен):
- Выведите содержимое публичного ключа:
cat ~/.ssh/id_rsa.pub
- Скопируйте вывод команды.
- Подключитесь к серверу по SSH с паролем:
ssh username@server_ip
- Создайте директорию и файл для ключей (если их нет):
mkdir -p ~/.ssh touch ~/.ssh/authorized_keys
- Откройте файл authorized_keys для редактирования (например, с помощью nano):
nano ~/.ssh/authorized_keys
- Вставьте скопированный публичный ключ в файл. Сохраните и закройте файл.
Шаг 3. Проверка подключения по ключу
Выйдите из сервера и попробуйте подключиться снова:
ssh username@server_ip
Если подключение прошло без запроса пароля — ключ настроен корректно.
Шаг 4. Отключение авторизации по паролю
- Подключитесь к серверу.
- Откройте файл конфигурации SSH‑сервера:
sudo nano /etc/ssh/sshd_config
- Найдите и измените следующие параметры (раскомментируйте строки, если они закомментированы):
- PubkeyAuthentication yes — разрешает авторизацию по ключу;
- PasswordAuthentication no — отключает авторизацию по паролю;
- PermitRootLogin prohibit-password — запрещает вход для root по паролю (опционально, но рекомендуется для безопасности).
- Сохраните изменения и закройте редактор.
Шаг 5. Перезапуск SSH‑службы
Выполните команду в зависимости от дистрибутива:
- Ubuntu/Debian:
sudo systemctl restart ssh
- CentOS/Fedora/RHEL:
sudo systemctl restart sshd
Шаг 6. Проверка настроек
- Попробуйте подключиться с другой машины (или в новом окне терминала) без ключа — подключение должно быть отклонено.
- Убедитесь, что подключение по SSH‑ключу по‑прежнему работает.
Важные предупреждения
- Перед отключением парольной авторизации убедитесь, что подключение по ключу работает стабильно. Иначе вы можете потерять доступ к серверу.
- Сохраняйте резервную копию закрытого ключа (id_rsa) в безопасном месте. Потеря ключа = потеря доступа.
- Рассмотрите дополнительные меры безопасности:
- изменение стандартного порта SSH (не 22);
- запрет входа для root;
- использование Fail2Ban для защиты от брутфорс‑атак.