Иногда, пытаясь подключиться к удаленным системам через SSH, вы можете столкнуться с ошибкой “Received disconnect from x.x.x.x port 22:2: Too many authentication failures”.
В этой короткой статье я объясню, как исправить эту ошибку за несколько простых шагов.
Ниже приведен снимок экрана об ошибке, с которой я столкнулся, при использовании ssh-клиента.
Я обнаружил, что это связано с наличием на моей машине многих идентификационных ключей ssh, и каждый раз, когда я запускаю ssh-клиент, он будет пытаться использовать все мои ssh-ключи, известные ssh-агенту и все остальные ключи при попытке подключиться к удаленному серверу (vps2, как показано на скриншоте выше).
Это поведение по умолчанию для службы ssh.
Поскольку ssh-сервер (sshd) на удаленном сервере ожидает определенного идентификационного ключа, сервер отклоняет соединение, а клиент ssh прерывает работу с указанной выше ошибкой.
Чтобы исправить эту ошибку, вам нужно добавить IdentitiesOnly со значением yes, которое инструктирует ssh использовать только файлы идентификации, указанные в командной строке, или настроенные в файлах ssh_config, даже если ssh-agent предлагает дополнительные данные.
Например:
$ ssh -o IdentitiesOnly=yes vps2
Кроме того, если вы хотите, чтобы это работало для всех подключений клиента ssh, вы можете настроить этот момент в файле ~/.ssh/config.
$ vim ~/.ssh/config
Добавьте следующую конфигурацию в файл в разделе Host *, как показано в скриншоте:
Host * IdentitiesOnly=yes
Сохраните изменения в файле и выйдите из него.
Теперь вы можете запустить ssh без указания опции -o IdentitiesOnly = yes в командной строке, как показано далее
$ ssh vps2
Для получения дополнительной информации см. Справочную страницу ssh-config.
$ man ssh-config
См. также: