Cisco %SSH-3-INV_PUBKEY: Invalid public key format or size — Исправление ошибки
Ошибка %SSH-3-INV_PUBKEY: Invalid public key format or size генерируется демоном SSH в Cisco IOS при попытке импорта или использования некорректного открытого ключа (Public Key) для аутентификации пользователей.
- Отказ в аутентификации по публичному ключу (Public-key authentication failed).
- Ошибка синтаксиса при выполнении команды
ip ssh pubkey-chain. - Клиентские скрипты автоматизации (Ansible, Netmiko, Python) не могут подключиться без передачи пароля.
- Разрыв SSH-соединения на этапе Key Exchange / User Auth.
1. Проверка текущих настроек SSH и сгенерированных ключей хоста
Убедитесь, что на устройстве сгенерирован RSA-ключ достаточной длины (минимум 2048 бит) и включен протокол SSH v2:
show ip ssh
show crypto key mypubkey rsa2. Корректный импорт публичного ключа OpenSSH
Cisco IOS требует преобразования стандартной строки ключа OpenSSH в шестнадцатеричный/многострочный формат. Преобразуйте ключ на рабочей станции:
ssh-keygen -e -f ~/.ssh/id_rsa.pub -m RFC47163. Конфигурация цепочки ключей (Pubkey Chain) в Cisco IOS
Внесите открытый ключ для конкретного пользователя:
configure terminal
ip ssh pubkey-chain
username admin
key-hash ssh-rsa <HEX_HASH_OR_KEY_STRING>
! Либо используйте прямой ввод ключа:
key-string
AAAA...[вставьте тело ключа без префикса ssh-rsa]...
exit
exit
exit
end4. Включение поддержки современных алгоритмов
На современных версиях IOS-XE убедитесь, что включены безопасные алгоритмы обмена:
configure terminal
ip ssh version 2
ip ssh server algorithm publickey ecdsa-sha2-nistp256 rsa-sha2-256 rsa-sha2-512
end Частые вопросы (FAQ)
Почему при копировании ключа OpenSSH в терминал возникает Invalid public key format?
Стандартная однострочная строка OpenSSH (ssh-rsa AAAA... user@host) содержит служебные заголовки и комментарии. В CLI Cisco требуется вводить только саму base64-строку внутри блока key-string или преобразованный RFC4716 формат.
Какой минимальный размер ключа RSA поддерживает современный Cisco SSH Server?
Для генерации криптографических ключей и аутентификации рекомендуется использовать размер не менее 2048 бит. Ключи менее 1024 бит отвергаются современными версиями IOS.
Как перегенерировать RSA-ключи сервера при их повреждении?
Выполните crypto key zeroize rsa, а затем crypto key generate rsa general-keys modulus 2048.
Как проверить, разрешена ли аутентификация по публичным ключам глобально?
Проверьте вывод команды show running-config | include ip ssh. Должна отсутствовать блокировка ip ssh authentication-retries.