Слишком много ошибок аутентификации для * username *

У меня есть учетная запись hostgator с включенным доступом ssh и при попытке загрузить сгенерированный ключевой файл .pub с помощью этой команды:

rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]: .ssh /authorized_keys

Я продолжаю получать:

Получено сообщение об отключении от 111.222.33.44: 2: слишком много ошибок аутентификации для имени пользователя
rsync: соединение неожиданно закрыто (0 байт получено до сих пор) [отправитель]
Ошибка rsync: необъяснимая ошибка (код 255) в io.c (601) [sender = 3.0.7]

Я уже общался с ssh, пока не получил ошибку auth. Но теперь кажется, что счетчик сбоев auth не сбрасывается (ожидая более 12 часов, техническая поддержка «предположим», он сбрасывается через 30 минут до 1 часа, а другой парень сказал мне «он сбрасывается каждый раз, когда вы пытаетесь войти в систему с помощью имя пользователя ", jeesh).

Это сводит меня с ума. Я даже настроил это на специализированном сервере Slicehost и имел меньше проблем, чем с этими ребятами. Любой отзыв? Возможно, это что-то клиентское, а не серверное.

222 голоса | спросил Gabriel A. Zorrilla 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 12 Sep 2010 21:14:13 +0400 2010, 21:14:13

13 ответов


358

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

Вы можете это увидеть сами, добавив флаг -v в команду ssh , чтобы получить подробный вывод. Вы увидите, что предлагается куча ключей, пока сервер не отклонит соединение: «Слишком много ошибок аутентификации для [пользователя]» . Без подробного режима вы увидите только двусмысленное сообщение «Сброс соединения с помощью одноранговой сети» .

Чтобы предотвратить предоставление нерелевантных ключей, вы должны явно указать это в каждой записи хоста в файле ~ /.ssh /config (на клиентской машине), добавив IdentitiesOnly следующим образом:

  Хост www.somehost.com
  IdentityFile ~ /.ssh /key_for_somehost_rsa
  Идентично только да
  Порт 22
 

Если вы используете ssh-agent, это помогает запустить ssh-add -D , чтобы очистить идентификаторы.

Если вы не используете конфигурацию хостов ssh, вам нужно явно указать правильный ключ в команде ssh , например:

  ssh -i some_id_rsa -o 'IdentitiesOnly yes' them @ there: /path /
 

Примечание: параметр «IdentitiesOnly yes» должен находиться между кавычками.

или

  ssh -i some_id_rsa -o IdentitiesOnly = yes them @ there: /path /
 
ответил John T 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 12 Sep 2010 21:53:29 +0400 2010, 21:53:29
158

Я нашел более простой способ сделать это (если используется проверка подлинности с помощью пароля):

  ssh -o PubkeyAuthentication = no [email protected]
 

Это приводит к неявной аутентификации. Я смог войти в систему сразу.

Справка

ответил Ben West 25 MaramSun, 25 Mar 2012 04:14:49 +04002012-03-25T04:14:49+04:0004 2012, 04:14:49
24

Я тоже получал эту ошибку и обнаружил, что это происходит b /c сервер был настроен на прием до 6 попыток:

  /и т.д. /SSH /sshd_config
...
...
#MaxAuthTries 6
 

В дополнение к настройке IdentitiesOnly yes в вашем файле ~ .ssh /config у вас есть несколько других параметров.

  1. Увеличьте MaxAuthTries (на сервере ssh)
  2. удалите некоторые пары ключей, присутствующие в каталоге ~ .ssh / & amp; run ssh-add -D
  3. явно привязать ключ к данному хосту в файле ~ .ssh /config

Так же:

  host foo
имя хоста foo.example.com
IdentityFile /home/YOU/.ssh/foo
 
  1. Вероятно, это не очень хороший способ, потому что это немного ослабляет ваш ssh-сервер, так как теперь он будет принимать больше ключей при данной попытке подключения. Подумайте об атаках с использованием грубой силы.

  2. Хорошо, если у вас есть ключи, которые не нужны и могут быть удалены навсегда.

  3. И подход установки IdentitiesOnly, вероятно, является предпочтительным способом решения этой проблемы!

ответил slm 9 J0000006Europe/Moscow 2011, 08:56:25
6

Если у вас есть пароль и вы хотите просто использовать пароль для входа в систему, вот как вы это делаете.

Чтобы использовать ТОЛЬКО аутентификацию пароля и НЕ использовать общедоступный ключ, и НЕ использовать несколько вводящую в заблуждение «клавиатурно-интерактивную» (которая является надмножеством, включая пароль), вы можете сделать это из командной строки:

  ssh -o PreferredAuthentications = пароль [email protected]
 
ответил Greg Rundlett 19 J0000006Europe/Moscow 2015, 17:22:41
5

Если вы получите следующую ошибку SSH:

  $ Полученное отсоединение от хоста: 2: Слишком много ошибок аутентификации для root
 

Это может произойти, если у вас есть (по умолчанию в моей системе) пять или более файлов идентификации DSA /RSA, хранящихся в вашем каталоге .ssh, и если параметр «-i» не указан в командной строке.

Сначала клиент ssh попытается войти в систему, используя каждую идентификацию (закрытый ключ) и следующее приглашение для аутентификации пароля. Тем не менее, sshd отключает соединение после пяти неудачных попыток входа в систему (снова значение по умолчанию может меняться).

Если в вашем каталоге .ssh имеется несколько закрытых ключей, вы можете отключить «Аутентификацию открытого ключа» в командной строке с использованием необязательного аргумента «-o».

Например:

  $ ssh -o PubkeyAuthentication = no root @ host
 
ответил Will Verna 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 21 Sep 2013 01:44:02 +0400 2013, 01:44:02
2

Отправляйся @David, просто добавьте это Идентично только да к вашему .ssh /config, он делает то же самое, что и ssh -o PubkeyAuthentication = no.

После входа в систему удалите .ssh /authorized_keys . Теперь вернитесь к локальному компьютеру и введите следующий

cat ~ /.ssh /id_rsa.pub | ssh -o PubkeyAuthentication = no user @ IP_ADDR 'cat>>>> .ssh /authorized_keys' . Это должно снова включить ваш ssh с открытым ключом

ответил Alan Dong 25 Jam1000000amSat, 25 Jan 2014 09:48:51 +040014 2014, 09:48:51
2

Я знаю, что это старый поток, но я просто хотел добавить здесь, что я столкнулся с тем же сообщением об ошибке, но это было вызвано тем, что владелец .ssh-папки был root, а не пользователем, который использовал ключ. Я исправил проблему, выполнив следующие команды:

  sudo chown -R пользователь: user /home/user/.ssh
 

Я также убедился, что разрешения были правильными в папке .ssh:

  sudo chmod 700 /home/user/.ssh
 

Файлы в каталоге .ssh должны иметь разрешение 600:

  sudo chmod 600 /home/user/.ssh/authorized_keys
 
ответил Adam 13 J0000006Europe/Moscow 2014, 21:37:06
2

Я добавил в ~ /.ssh /config это:

  Host *
Идентично только да
 

Он включает опцию IdentitiesOnly = yes по умолчанию. Если вам нужно подключиться к закрытому ключу, вы должны указать его с опцией -i

ответил Евгений Шаповалов 23 J000000Wednesday14 2014, 21:29:54
0

В моем случае это происходило, потому что я использовал имя пользователя «ubuntu», но имя пользователя в этом случае было «ec2-user»

После того, как я сделал то, что предложил «Джон Т», я получил эту ошибку:

  

Разрешение отклонено (публикация).

Затем я нашел решение (т.е. изменив имя пользователя на «ec2-user») в этом ответе: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue

ответил Deepak Joy 19 32014vEurope/Moscow11bEurope/MoscowWed, 19 Nov 2014 11:10:08 +0300 2014, 11:10:08
0

В моем случае проблема была в разрешении каталога. Это исправило это для меня:

  $ chmod 750 ~; chmod 700 ~ /.ssh
 
ответил tbc0 21 FebruaryEurope/MoscowbSun, 21 Feb 2016 01:57:15 +0300000000amSun, 21 Feb 2016 01:57:15 +030016 2016, 01:57:15
0

Это сообщение может появиться, когда правильное имя пользователя и пароль не введены.

Сначала проверьте, что пользователь указан:

  vim /etc /passwd
 
ответил Matoeil 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 26 Sep 2016 18:23:15 +0300 2016, 18:23:15
0

У меня был открытый ключ в .ssh /authorized_keys2 , но сервер был настроен только на чтение .ssh /authorized_keys :

  # По умолчанию используется проверка .ssh /authorized_keys и .ssh /authorized_keys2
#, но это переопределено, поэтому установки будут проверять только .ssh /authorized_keys
AuthorizedKeysFile .ssh /authorized_keys
 

После перемещения моего файла в .ssh /authorized_keys , я могу войти в систему успешно с моим ключом.

ответил Benedikt Köppel 5 Mayam17 2017, 10:57:18
0
  

Слишком много ошибок аутентификации

Это сообщение вызвано слишком большим количеством неудачных попыток аутентификации с учетом разрешенных ограничений, установленных на удаленном SSH-сервере. Это потенциально означает, что у вас слишком много идентификаторов, добавленных в агент SSH.

Вот несколько советов:

  • Добавьте -v , чтобы убедиться, что это так (вы используете слишком много идентификаторов).
  • Список добавленных идентификаторов по ssh-add -l .
  • Удалить идентификатор агента с помощью: ssh-add -d .
  • Вы также можете удалить все идентификаторы с помощью ssh-add -D и повторно добавить только соответствующий.
  • Если у вас есть доступ к SSH-серверу, установите флажок MaxAuthTries (см. man sshd_config ).

    Связанное сообщение: Что такое ограничение для Максимальное количество символов sshd_config ?

  • Если это не помогает, убедитесь, что вы используете правильные учетные данные или файл.

ответил kenorb 12 PMpThu, 12 Apr 2018 16:28:15 +030028Thursday 2018, 16:28:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132