Назад | Перейти на главную страницу

Мой собственный сервер заблокирован: сразу появляется сообщение «Слишком много сбоев аутентификации» при подключении по ssh

У меня есть экземпляр AWS EC2 Ubuntu для домашних проектов. Когда я однажды попытался войти в систему, это привело к ошибке:

~$ ssh -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22 
Enter passphrase for key '/home/kona/.ssh/aws_kona_id': 
Received disconnect from [IP address] port 22:2: Too many authentication failures
Disconnected from [IP address] port 22
~$

kona это единственная учетная запись, включенная на этом сервере

Я попытался перезагрузить сервер, изменить свой IP-адрес и ждать.

РЕДАКТИРОВАТЬ:

kona@arcticjieer:~$ ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" -v kona@ec2-3-17-146-113.us-east-2.compute.amazonaws.com -p22 
OpenSSH_8.1p1 Debian-1, OpenSSL 1.1.1d  10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-3-17-146-113.us-east-2.compute.amazonaws.com [3.17.146.113] port 22.
debug1: Connection established.
debug1: identity file /home/kona/.ssh/aws_kona_id type -1
debug1: identity file /home/kona/.ssh/aws_kona_id-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1p1 Debian-1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug1: Authenticating to ec2-3-17-146-113.us-east-2.compute.amazonaws.com:22 as 'kona'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:D3sIum9dMyyHNjtnL7Pr4u5DhmP5aQ1jaZ8Adsdma9E
debug1: Host 'ec2-3-17-146-113.us-east-2.compute.amazonaws.com' is known and matches the ECDSA host key.
debug1: Found key in /home/kona/.ssh/known_hosts:41
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/kona/.ssh/aws_kona_id  explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/kona/.ssh/aws_kona_id
Enter passphrase for key '/home/kona/.ssh/aws_kona_id': 
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
kona@ec2-3-17-146-113.us-east-2.compute.amazonaws.com: Permission denied (publickey).
kona@arcticjieer:~$ 

Эта ошибка обычно означает, что у вас есть слишком много ключей загружено в ваш ssh-agent.

Пояснение: Ваш ssh-клиент попытается использовать все ключи из ssh-agent один за другим, прежде чем он сможет использовать ключ, указанный с помощью -i aws_kona_id. Да, это немного нелогично. Потому что каждая такая попытка считается ошибка аутентификации и по умолчанию сервер SSH разрешает только 5 попыток, вы получаете сообщение об ошибке: Слишком много ошибок аутентификации.

Вы можете просмотреть попытки идентификации (ключей) с помощью ssh -v.

Решение - сказать ssh чтобы использовать только идентификаторы, указанные в командной строке:

ssh -o "IdentitiesOnly yes" -i ~/.ssh/aws_kona_id -v kona@server.akona.me

Если это не поможет, опубликуйте вывод этой команды здесь.

Я думаю, что в этом случае ответ MLu, возможно, правильный. Способ проверить это - запустить команду ssh в командной строке, указав правильный ключ для сервера.

ssh -i "keyfile.pem" ec2-user@1.2.3.4

Если это не работает и в общем случае «Я заблокирован для доступа к моему серверу, помогите!», Обычно рекомендуется подключить том к другому экземпляру как том с данными.

  1. Остановите сервер EC2.
  2. Установите том на новый экземпляр как объем данных.
  3. Проведите необходимое расследование или отремонтируйте (посмотрите журналы, добавьте ключи и т. Д.). Это может включать создание новых пользователей и новых ключей, изменение файлов в файловой системе и т. Д.
  4. Смонтируйте том как корневой том на исходном экземпляре.

Повторяйте, пока не получите доступ. Если вы не можете получить доступ, это, по крайней мере, дает вам доступ к вашим данным.

SSH по умолчанию пробует все доступные SSH-ключи. Это происходит в «случайном» порядке. Указание -i опция просто указывает SSH добавить этот ключевой файл в список ключей, которые нужно попробовать.

Оно делает не:

  • ограничить SSH использовать только этот ключ
  • скажите SSH попробовать этот ключ первый

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

Если вы хотите, чтобы SSH "использовал только этот ключ "необходимо указать IdentitiesOnly yes вариант:

ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22 

IdentitiesOnly yes сообщает SSH использовать только явно указанные ключи (в данном случае только ключ, указанный с помощью -i).

Вот почему, когда я использую специальные ключи для разных хостов, я всегда определить конфигурацию хоста в .ssh/config. Это позволяет мне использовать простой псевдоним и, что более важно, указать IdentitiesOnly yes и какой ключ использовать, чтобы избежать такой ошибки:

Host kona.server
    Hostname server.akona.me
    IdentityFile ~/.ssh/aws_kona_id
    IdentitiesOnly yes
    Port 22
    User kona

С указанным выше в вашем .ssh/config вы должны иметь возможность войти на свой сервер просто:

$ ssh kona.server

Подробный вывод, который вы только что добавили, показывает, что вы получаете Permission denied для ~/.ssh/aws_kona_id.

Это совсем другая проблема, чем Too many authentication failures.

Возможно ваш aws_kona_id не является правильным ключом для пользователя (и поэтому он продолжал пробовать все другие идентификаторы из ssh-agent), или вы должны использовать учетную запись пользователя EC2 по умолчанию, например ec2-user или ubuntu или что у тебя.

Попробуйте эти учетные записи или попробуйте найти правильный ключ для kona пользователь.

У экземпляра Ubuntu EC2 есть учетная запись пользователя ubuntu, установленная с вашим ключом ssh.

Если вы не удалите эту учетную запись, вы все равно сможете подключиться к:

ssh -i "/home/kona/.ssh/aws_kona_id" ubuntu@server.akona.me

И исправьте проблему с учетной записью после sudo -i и расследование /home/kona/.ssh/authorized_keys

просто запустите свой ssh-агент

eval "$(ssh-agent -s)"

затем

добавьте свой ключ rsa

ssh-add id_rsa

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