Thank you for reading this post, don't forget to subscribe!
При подключении по SSH начала появляться ошибка “Too many authentication failures“.
Ошибка и причины
Причина достаточно простая: SSH-клиент при подключении сначала пытается использовать ключи, которые загружены ssh-agent
, и только потом использует ключ, переданный клиенту опцией -i
.
Сама ошибка выглядит так:
1 2 3 |
ssh root@rtfm.ssh -i /home/setevoy/Dropbox/AWS/setevoy-do-nextcloud-production-d10-03-11 Received disconnect from 139.59.205.180 port 22:2: Too many authentication failures Disconnected from 139.59.205.180 port 22 |
Что бы убедиться, что сначала используются ключи ssh-agent
– выполняем подключение в дебаг-режиме, добавляем -v
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ssh -v root@rtfm.co.ua -i /home/setevoy/AWS/setevoy-do-nextcloud-production-d10-03-11 ... debug1: Offering public key: /home/setevoy/Work/aws-credentials/jenkins-production-eu-west-1.pem RSA SHA256:19/1clohkik2LHC8pyIT0JxAz8/kbjEPhBT6UyxPBaw agent debug1: Authentications that can continue: publickey debug1: Offering public key: setevoy@setevoy-arch-work RSA SHA256:r90LWLY/HpQ/fRinmopKyXOGxrcy2ZPJp2ua7mvZFg4 agent debug1: Authentications that can continue: publickey debug1: Offering public key: Github setevoy2 SSH RSA SHA256:JxeiYfC236wtrdFuADpldciGT86RglAk0vRH7UDpaX8 agent debug1: Authentications that can continue: publickey debug1: Offering public key: /home/setevoy/Work/aws-credentials/mobilebackend-bastion-stage-us-east-2.pem RSA SHA256:SAdCEuO3MRMe+Jfo3310OBPDFbYhodlsBxiomF2THHw agent debug1: Authentications that can continue: publickey debug1: Offering public key: /home/setevoy/Work/aws-credentials/mobilebackend-stage-us-east-2.pem RSA SHA256:/MV7A6GRRYRMWyKWINy5xfFp94+2F90Pai3hLC3uFVQ agent debug1: Authentications that can continue: publickey debug1: Offering public key: /home/setevoy/Work/aws-credentials/bm-world-production.pem RSA SHA256:akVDdE5TwELN/RZ0ALgFphyAvRA4qiZUxItHoFTl0FY agent Received disconnect from 139.59.205.180 port 22:2: Too many authentication failures Disconnected from 139.59.205.180 port 22 |
И проверим ключи, которые в данный момент загружены агентом:
1 2 3 4 5 6 7 8 |
ssh-add -l 2048 SHA256:19/1clohkik2LHC8pyIT0JxAz8/kbjEPhBT6UyxPBaw /home/setevoy/Work/aws-credentials/jenkins-production-eu-west-1.pem (RSA) 3072 SHA256:r90LWLY/HpQ/fRinmopKyXOGxrcy2ZPJp2ua7mvZFg4 setevoy@setevoy-arch-work (RSA) 3072 SHA256:JxeiYfC236wtrdFuADpldciGT86RglAk0vRH7UDpaX8 Github setevoy2 SSH (RSA) 2048 SHA256:SAdCEuO3MRMe+Jfo3310OBPDFbYhodlsBxiomF2THHw /home/setevoy/Work/aws-credentials/mobilebackend-bastion-stage-us-east-2.pem (RSA) 2048 SHA256:/MV7A6GRRYRMWyKWINy5xfFp94+2F90Pai3hLC3uFVQ /home/setevoy/Work/aws-credentials/mobilebackend-stage-us-east-2.pem (RSA) 2048 SHA256:akVDdE5TwELN/RZ0ALgFphyAvRA4qiZUxItHoFTl0FY /home/setevoy/Work/aws-credentials/bm-world-production.pem (RSA) 3072 SHA256:gxWQRigVqmX5uV9FRa4j8NnfOEKCQ8YtaEtX79PoRTM /home/setevoy/AWS/setevoy-do-nextcloud-production-d10-03-11 (RSA) |
До последнего ключа,
setevoy-do-nextcloud-production-d10-03-11
, запрос даже не успевает дойти – ssh-сервер уже начинает отбрасывать подключения.
Решение
Для того, что бы ssh-клиент не перебирал все загруженные агентом ключи – используем опцию IdentitiesOnly
со значением yes:
1 2 3 4 5 |
ssh -o IdentitiesOnly=yes root@rtfm.co.ua -i /home/setevoy/Dropbox/AWS/setevoy-do-nextcloud-production-d10-03-11 Linux rtfm-do-production-d10 4.19.0-12-cloud-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 ... Last login: Sat Mar 12 14:17:55 2022 from 176.***.***.170 root@rtfm-do-production-d10:~# |
Что бы сделать её постоянной – добавляем в ~/.ssh/config
:
1 2 |
Host * IdentitiesOnly=yes |
Готово