Иногда, когда я подключаюсь по SSH к серверу, которого нет в моем файле известных хостов, ssh выдает мне сообщение:
Невозможно установить подлинность хоста '[domain] ([ip_address])'.
Отпечаток ключа RSA - [fingerprint].
Вы уверены, что хотите продолжить подключение (да/нет)?
Если я выберу «да», то получу сообщение:
Предупреждение: «[домен]» (RSA) навсегда добавлен в список известных хостов.
Но для некоторых других серверов (например, github.com) мне не предлагается продолжить, и вместо этого янемедленнополучите следующее сообщение, сформулированное немного иначе:
Предупреждение: ключ хоста RSA для IP-адреса «[ip_address]» навсегда добавлен в список известных хостов.
Что вызывает эту разницу в поведении? И что еще важнее, когда янетнеобходимо ли мне вручную проверить ключ, добавленный в файл known_hosts, прежде чем продолжить работу с сервером?
В обоих случаях я аутентифицируюсь через открытый ключ. Я работаю под управлением OS X 10.10.3, использую установленный в системе OpenSSH.
решение1
Вероятно, это вызвано тем, что эти сайты хранят свои отпечатки SSH в DNS, поэтому им больше не приходится беспокоить пользователей проверкой ключей.
Эта функция называется SSHFP запись. Вы можете проверить это с помощьюssh-keygen -r github.com
решение2
Оказывается, я просто идиот.
В то время как,как утверждает Джакудже, SSHFP позволяет сайтам хранить отпечатки своих открытых ключей в своих записях DNS, в данном случае ключбылуже в файле known-hosts под доменным именем (которое я обнаружил, добавив -v
флаг отладки к своей ssh
команде).
Как поясняется в полученном мной информационном сообщении, в файл добавляется новая строка.для используемого IP-адреса.