У меня есть учетная запись hostgator с включенным доступом SSH. При попытке загрузить сгенерированный файл ключа .pub с помощью этой команды:
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub username@111.222.33.44:.ssh/authorized_keys
Я продолжаю получать:
Получено отключение от 111.222.33.44: 2: слишком много ошибок аутентификации для имени пользователя rsync: соединение неожиданно закрыто (получено 0 байт) [отправитель] Ошибка rsync: необъяснимая ошибка (код 255) в io.c (601) [отправитель = 3.0.7]
Ранее я играл с ssh, пока не получил ошибку аутентификации. Но теперь кажется, что счетчик ошибок аутентификации не сбрасывается (ожидание более 12 часов, служба технической поддержки «предполагает», что он сбрасывается через 30 минут - 1 час, и другой парень сказал мне «он сбрасывается каждый раз, когда вы пытаетесь войти с имя пользователя ", боже).
Это сводит меня с ума. Я даже настроил это на пользовательском сервере Slicehost, и у меня было меньше проблем, чем с этими парнями.
Какие-нибудь советы? Возможно, это что-то на стороне клиента, а не на стороне сервера.
ssh
authentication
Габриэль А. Зоррилья
источник
источник
Ответы:
Обычно это вызвано непреднамеренным предложением нескольких ключей ssh серверу. Сервер отклонит любой ключ после того, как было предложено слишком много ключей.
Вы можете убедиться в этом сами, добавив
-v
флаг к своейssh
команде, чтобы получить подробный вывод. Вы увидите, что предлагается несколько ключей, пока сервер не отклонит соединение, говоря: «Слишком много ошибок аутентификации для [пользователя]» . Без подробного режима вы увидите только неоднозначное сообщение «Сброс соединения по пиру» .Чтобы не предлагать нерелевантные ключи, вы должны явно указать это в каждой записи хоста в
~/.ssh/config
файле (на клиентском компьютере), добавивIdentitiesOnly
примерно так:Если вы используете ssh-agent, он помогает запустить
ssh-add -D
идентификацию.Если вы не используете конфигурацию хостов ssh, вы должны явно указать правильный ключ в
ssh
команде, например:Примечание: параметр «IdentitiesOnly yes» должен находиться между кавычками.
или же
источник
ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
ssh
«предлагать несколько ключей» (что-нибудь под~/.ssh
), даже если правило для хоста имеет явнуюIdentityFile /path/to/private_key_file
настройку. Не должен ли этот явно указанный ключ (по крайней мере) предлагаться первым? Не является ли это ошибкой / ошибкой в клиенте openssh?IdentityFile
опции? Например, безIdentitiesOnly
опции он пытается использовать мойgithub
ключ, когда я пытаюсьssh gitlab.com
. Это не имеет никакого смысла.Я нашел более простой способ сделать это (при использовании аутентификации по паролю):
Это вызывает неключевую аутентификацию. Я смог войти в систему сразу.
Ссылка
источник
rsync
:rsync -av -e 'ssh -o PubkeyAuthentication=no' 'user@host.com:~/remote_file' 'local_file'
Я тоже получил эту ошибку и обнаружил, что это происходит, потому что сервер был настроен на прием до 6 попыток:
В дополнение к настройке
IdentitiesOnly yes
в вашем~/.ssh/config
файле у вас есть несколько других вариантов.MaxAuthTries
(на сервере ssh)~/.ssh/
каталоге и запуститеssh-add -D
~/.ssh/config
файлеВот так:
Вероятно, это не очень хороший способ, поскольку он немного ослабляет ваш ssh-сервер, поскольку теперь он будет принимать больше ключей при данной попытке подключения. Думайте векторы атаки грубой силы здесь.
Это хороший способ, если у вас есть ключи, которые не нужны и могут быть удалены без возможности восстановления.
И подход установки IdentitiesOnly, вероятно, является предпочтительным способом решения этой проблемы!
источник
Я добавил в ~ / .ssh / config это:
Он включает опцию IdentitiesOnly = yes по умолчанию. Если вам нужно подключиться с закрытым ключом, вы должны указать его с опцией -i
источник
Если вы получаете следующую ошибку SSH:
Это может произойти, если у вас (по умолчанию в моей системе) пять или более файлов идентификаторов DSA / RSA, хранящихся в вашем каталоге .ssh, и если в командной строке не указан параметр -i.
Клиент ssh сначала попытается войти в систему с использованием каждого идентификатора (личного ключа) и следующего запроса аутентификации по паролю. Тем не менее, sshd сбрасывает соединение после пяти неудачных попыток входа в систему (опять-таки по умолчанию может отличаться).
Если у вас есть несколько закрытых ключей в каталоге .ssh, вы можете отключить «Аутентификацию с открытым ключом» в командной строке, используя необязательный аргумент «-o».
Например:
источник
Если у вас есть пароль, и вы хотите просто использовать пароль для входа в систему, вот как вы это делаете.
Чтобы использовать ТОЛЬКО аутентификацию по паролю и НЕ использовать открытый ключ, а НЕ использовать вводящее в заблуждение «клавиатурно-интерактивный» (который является надмножеством, включающим пароль), вы можете сделать это из командной строки:
источник
Говоря @David, просто добавьте это
IdentitiesOnly yes
в ваш .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 с открытым ключомисточник
Я знаю, что это старый поток, но я просто хотел добавить сюда, что я столкнулся с тем же сообщением об ошибке, но оно было вызвано тем, что владелец папки .ssh является пользователем root, а не пользователь, который использовал ключ. Я исправил проблему, выполнив следующие команды:
Я также удостоверился, что разрешения были правильными для папки .ssh:
Файлы в каталоге .ssh должны иметь разрешение 600:
источник
В моем случае проблема была в разрешениях на каталог. Это исправило это для меня:
источник
В моем случае это происходило потому, что я использовал имя пользователя «ubuntu», но имя пользователя в этом случае было «ec2-user»
После того, как я сделал то, что предложил «Джон Т», я получил эту ошибку:
Затем я нашел решение (т.е. изменил имя пользователя на «ec2-user») в этом ответе: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue
источник
У меня был открытый ключ
.ssh/authorized_keys2
, но сервер был настроен только для чтения.ssh/authorized_keys
:После перемещения моего файла в
.ssh/authorized_keys
, я могу успешно войти в систему с моим ключом.источник
Это сообщение вызвано слишком большим количеством неудачных попыток аутентификации с учетом разрешенных ограничений, установленных на удаленном сервере SSH. Это потенциально означает, что в агенте SSH добавлено слишком много идентификаторов.
Вот несколько предложений:
-v
чтобы увидеть, так ли это (вы используете слишком много идентификаторов).ssh-add -l
.ssh-add -d
.ssh-add -D
и повторно добавить только соответствующие.Если у вас есть доступ к SSH-серверу, отметьте
MaxAuthTries
опцию (см .man sshd_config
:).Связанный пост: Что такое соединение для
sshd_config
ограничения MaxAuthTries?Если ничего из этого не помогло, убедитесь, что вы используете правильные учетные данные или файл.
источник
Это сообщение может появиться, если не введено правильное имя пользователя и пароль.
Сначала проверьте, что пользователь указан в списке:
источник