Мы подключаемся через s sh к удаленному хосту из java с библиотекой sshj. Для этого мы настроили один отпечаток пальца, который используется во время проверки хоста.
Через некоторое время мы начали получать случайные ошибки проверки ключа хоста. Из нескольких соединений s sh только некоторые из них завершаются с ошибкой
Disconnecting because none of the configured Host key verifiers ([net.schmizz.sshj.transport.verification.FingerprintVerifier$1@1696cbbf]) could verify 'ssh-ed25519' host key with fingerprint ... for ...
Насколько я понимаю, это связано с тем, что хост имеет несколько ключей, настроенных для разных алгоритмов (ssh-rsa
, ssh-ed25519
, ecdsa-sha2-nistp256
).
- Каков правильный подход, если мы добавим несколько верификаторов, по одному для каждого известного ключа?
- Почему это случайно? Какой метод используется ssh / sshj для выбора используемого ключа?