Рейтинг:0

SSHD: отпечаток открытого ключа не соответствует ожиданиям

флаг ua

две машины на картинке для моей проблемы:

  • Сервер: работает Ubuntu Server 20.04.3 LTS, работает ssh-сервер
  • Клиент: Запуск Ubuntu Desktop 20.04.3 LTS, запуск ssh-клиента

Я ожидаю, что моя сгенерированная пара ключей ED25519 будет использоваться. Ключи хранятся следующим образом:

  • id_ed25519.pub: прикреплен в ~/.ssh/authorized_keys на "сервере"
  • id_ed25519: хранится в ~/.ssh на «клиенте»

Конфигурация на сервере в /etc/ssh/sshd.config:

  • PubkeyAuthentication да
  • Файл авторизованных ключей .ssh/authorized_keys .ssh/authorized_keys2
  • ПарольАутентификация нет

Конфигурация на клиенте:

  • id_ed25519 доступен через связку ключей (выполнение ssh-add для ssh-agent, правильный запрос парольной фразы)

Теперь, что вызывает у меня головную боль:

Шаг 1: Я подключаюсь от клиента к серверу. Когда я обращаюсь в первый раз (пустой ~/.ssh/known_hosts на клиенте), я получаю: Отпечаток ключа ECDSA — SHA256: [DefaultKeyFingerprint]. Вы уверены, что хотите продолжить подключение? [DefaultKeyFingerprint] — это заполнитель для отображаемого отпечатка пальца. Оказывается, это не тот отпечаток, который я ожидал. Я ожидал, что id_ed25519.pub используется сервером для получения отпечатка пальца. Это приведет к другому отпечатку пальца (проверяется через «ssh-keygen -l -f»). Назовем это [Ожидаемый отпечаток пальца].

Я пытался понять, откуда берется [DefaultKeyFingerprint]. Результат: Он соответствует ключу по умолчанию ssh_host_ecdsa_key.pub, сгенерированному sshd в /etc/ssh/

Шаг 2: После принятия вышеупомянутого предупреждения я могу успешно подключиться.

Я хотел понять, использовался ли открытый ключ [DefaultKeyFingerprint] или [ExpectedFingerprint]. Два признака того, что [ExpectedFingerprint] использовался:

  • Указание закрытого ключа за [DefaultKeyFingerprint] при выполнении «ssh» на клиенте не принимается «Сервером», даже если файл закрытого ключа указан с использованием параметра -i. Ошибка: Отказано в доступе (publickey). Это соответствует моим ожиданиям, поскольку я разрешил на стороне сервера в ~/.ssh/authorized_keys только открытый ключ, соответствующий [ExpectedFingerprint]
  • Когда я запускаю "Сервер": статус systemctl ssh после успешного входа в систему я получаю следующий вывод:
Дез 22 10:57:42 [my_machine] sshd [3255]: принятый ключ ED25519 SHA256: [ожидаемый отпечаток пальца] найден в ~/.ssh/authorized_keys:1
22 декабря 10:57:42 [my_machine] sshd [3255]: принятый открытый ключ для [пользователя] с порта 192.168.178.35 50048 ssh2: ED25519 SHA256: [ожидаемый отпечаток пальца]
Дез 22 10:57:42 [my_machine] sshd[3255]: pam_unix(sshd:session): сеанс открыт для пользователя [user] пользователем (uid=0)

Мои вопросы:

  • Можете ли вы подтвердить мою аргументацию выше, что на самом деле использовался [ExpectedFingerprint]?
  • Почему «Сервер» отображается как отпечаток [DefaultKeyFingerprint], а не [ExpectedFingerprint], и как сделать так, чтобы «Server» отображал [ExpectedFingerprint]?

Примечания - не зная, имеет ли это значение: Когда я сгенерировал пару ключей, ведущую к [ExpectedFingerprint], я указал звездочку в доменном имени *.mydomain.com. Вывод ssh-keygen -l -f для обоих открытых ключей:

256 SHA256: [ожидаемый отпечаток пальца] *.mydomain.com (ED25519)
256 SHA256:[DefaultKeyFingerprint] root@mymachine (ECDSA)

Заранее спасибо за ваши мысли.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.