Постановка задачи:
Есть клиентская машина, на ней много ключей SSH, они загружены в ssh agent. Есть сервер, на котором sshd настроен на ограниченное количество попыток аутентификации. На клиентской машине эта проблема решается через явное указание нужного ключа в ~/.ssh/config .
С клиентской машины заходим по ssh на промежуточный хост с форвардингом агента. При попытке подключения к серверу с промежуточного хоста клиент ssh начинает перебор всех доступных ключей, исчерпывает попытки и терпит неудачу.
Но если на промежуточный хост сохранить публичный ключ из пары для доступа на сервер, а затем указать его при подключении:
ssh -i ~/.ssh/target_server_key.pub user@target_server
то подключение удаётся. Дебаг ( ключ -Tv ) показывает, что этот явно указанный ключ предложен первым:
debug1: Next authentication method: publickey
debug1: Offering public key: {...}.pub ED25519 SHA256:{...} explicit agent
debug1: Server accepts key: {...}.pub ED25519 SHA256:{...} explicit agent
но я не понимаю, почему это срабатывает - ведь я предложил публичный ключ, а не приватный?