105207879

Отключаем авторизацию по паролю и используем только авторизацию по ключу ssh

Разберу пошагово, как отключить авторизацию по паролю и перейти на авторизацию по 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 недоступен):

  1. Выведите содержимое публичного ключа:

cat ~/.ssh/id_rsa.pub

  1. Скопируйте вывод команды.
  2. Подключитесь к серверу по SSH с паролем:

ssh username@server_ip

  1. Создайте директорию и файл для ключей (если их нет):

mkdir -p ~/.ssh touch ~/.ssh/authorized_keys

  1. Откройте файл authorized_keys для редактирования (например, с помощью nano):

nano ~/.ssh/authorized_keys

  1. Вставьте скопированный публичный ключ в файл. Сохраните и закройте файл.

Шаг 3. Проверка подключения по ключу

Выйдите из сервера и попробуйте подключиться снова:

ssh username@server_ip

Если подключение прошло без запроса пароля — ключ настроен корректно.

Шаг 4. Отключение авторизации по паролю

  1. Подключитесь к серверу.
  2. Откройте файл конфигурации SSH‑сервера:

sudo nano /etc/ssh/sshd_config

  1. Найдите и измените следующие параметры (раскомментируйте строки, если они закомментированы):
  • PubkeyAuthentication yes — разрешает авторизацию по ключу;
  • PasswordAuthentication no — отключает авторизацию по паролю;
  • PermitRootLogin prohibit-password — запрещает вход для root по паролю (опционально, но рекомендуется для безопасности).
  1. Сохраните изменения и закройте редактор.

Шаг 5. Перезапуск SSH‑службы

Выполните команду в зависимости от дистрибутива:

  • Ubuntu/Debian:

sudo systemctl restart ssh

  • CentOS/Fedora/RHEL:

sudo systemctl restart sshd

Шаг 6. Проверка настроек

  1. Попробуйте подключиться с другой машины (или в новом окне терминала) без ключа — подключение должно быть отклонено.
  2. Убедитесь, что подключение по SSH‑ключу по‑прежнему работает.

Важные предупреждения

  • Перед отключением парольной авторизации убедитесь, что подключение по ключу работает стабильно. Иначе вы можете потерять доступ к серверу.
  • Сохраняйте резервную копию закрытого ключа (id_rsa) в безопасном месте. Потеря ключа = потеря доступа.
  • Рассмотрите дополнительные меры безопасности:
    • изменение стандартного порта SSH (не 22);
    • запрет входа для root;
    • использование Fail2Ban для защиты от брутфорс‑атак.
Добавить комментарий