Почему я получаю слишком много ошибок аутентификации, если не запрашивала пароль при SSH на macOS?

Вопрос или проблема

Когда я пытаюсь подключиться по SSH к любому хосту, используя следующую команду:

ssh 192.168.1.5

Я получаю следующую ошибку:

Received disconnect from 192.168.1.5 port 22:2: Слишком много неудачных попыток аутентификации
Disconnected from 192.168.1.5 port 22

Теперь я использовал другой аргумент к команде -vvvv и выяснил, что программа SSH пытается все ключи SSH и не может подключиться, потому что ни один из них на самом деле не совпадает с моим хостом (192.168.1.5), что является правильным.

Но при этом я не помню, чтобы отключал аутентификацию по паролю. Я искал в конфигурационном файле, но не нашел ни одной строки конфигурации, которая явно заставляет аутентификацию проходить через SSH ключ.

Как я могу повторно включить аутентификацию по имени пользователя и паролю вместе с аутентификацией по SSH ключу? Или, возможно, более радикальный вариант – как мне полностью сбросить свою SSH конфигурацию, не теряя свои ключи?

Я разобрался:

У меня настроено несколько SSH ключей, которые не привязаны к конкретным доменам или IP-адресам. Поэтому все они тестировались, и все они потерпели неудачу (что и предполагается). Как только все ключи потерпели неудачу, следующим методом аутентификации является аутентификация по имени пользователя и паролю.

Однако я никогда не мог бы дойти до этой части, потому что сервер, к которому я пытался подключиться, имел ограничение на количество разрешенных попыток входа.

Таким образом, дело не в том, что мне не хватает настроек, а в том, что я не ограничил свои ключи для конкретных хостов.

Ответ или решение

Когда вы пытаетесь подключиться к удаленному хосту с помощью SSH и сталкиваетесь с ошибкой "Too many authentication failures", это означает, что ваш клиент SSH пытается аутентифицироваться, используя несколько ключей, которые не подходят для данного сервера. Восприятие ошибки может сбивать с толку, поскольку на первый взгляд может показаться, что вы не имеете возможности ввести пароль.

Основная причина этой проблемы заключается в том, что клиент SSH по умолчанию будет пытаться использовать все доступные SSH-ключи, если в конфигурации не указаны ограничения по используемым ключам. Когда все предлагаемые ключи не проходят аутентификацию, сервер отключает вас из-за ограничения на количество неудачных попыток.

Вот несколько шагов, которые вы можете предпринять для решения этой проблемы:

  1. Ограничение используемых ключей:

    • По умолчанию SSH использует все доступные ключи в вашем ~/.ssh каталоге. Вы можете указать конкретные ключи для каждого хоста в файле конфигурации SSH (~/.ssh/config). Пример:
      Host 192.168.1.5
       IdentityFile ~/.ssh/your_specific_key
       User your_username
  2. Увеличение лимита неудачных попыток на сервере:

    • Если у вас есть доступ к конфигурационным файлам сервера, вы можете изменить параметры MaxAuthTries в sshd_config, обычно находящемся в /etc/ssh/sshd_config. Убедитесь, что вы понимаете риски повышения этого лимита.
  3. Авторизация по паролю:

    • Чтобы убедиться, что авторизация по паролю активирована на сервере, убедитесь, что в файле sshd_config включена строка:
      PasswordAuthentication yes
    • Затем не забудьте перезапустить SSH-сервер для применения изменений.
  4. Удаление лишних ключей:

    • Если вы не используете некоторые ключи, рассмотрите возможность их удаления или перемещения в другой каталог, чтобы избежать их ненужной аутентификации при подключении.
  5. Полная перезагрузка конфигурации SSH:

    • Чтобы сбросить вашу конфигурацию SSH и не потерять ключи, вы можете просто переименовать или удалить файл конфигурации ~/.ssh/config. Создайте новый файл конфигурации с нужными параметрами.

Применив эти методы, вы сможете устранить проблему "слишком много неудачных попыток аутентификации" и снова получить доступ по SSH к вашим серверам.

Оцените материал
Добавить комментарий

Капча загружается...