ssh, hashed known_hosts: извлечение простого текста и использование подстановочных знаков

ssh, hashed known_hosts: извлечение простого текста и использование подстановочных знаков

В sshклиентах файл .ssh/knwon_hostsможет использовать обычный текст (такое происходит, например, в FreeBSD 12.0):

<ip_address> ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIlD8R6Kxj9CdToar+3ay4B0yE65dP0EYoRJjEEgLjmvCTIv59DBp+0j2z0+NM0hxxJew79i1bYuN02lEvT2/E=

или он может быть хеширован (как в Ubuntu 18.04):

|1|3Et6QShrP2OrD4tWdOGP3jy3YC4=|f2FrJ5tOjjmFSrGWyen1DokJyLc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIyZLGNvIADWL5SSkohBmDCVpLUzAHNejqQAXP3SSY300YIdNKCn3jqGmFAJiKB1CY0HnVirgFjdAKpyw3+6yzo=

Вопрос 1

Можно ли получить строки обычного текста из хэша known_hosts?


Убунтуsshd страница руководстваговорится, что:

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

Я не совсем понимаю, что здесь имеется в виду.

вопрос 2

Означает ли это, что адреса типа 192.168.*.*никогда не могут быть приняты в хешированной форме known_hosts, даже если они созданы как обычный текст, а затем вручную хешированы?


Как впредыдущий вопрос, Я использую эти клиенты: OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018и OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017.

решение1

Нет и да, именно в таком порядке. Цель хеширования строки — скрыть хосты, к которым вы ранее подключались, поэтому само назначение хеш-функции — сделать (для практических целей) невозможным определение имени хоста, которому она принадлежит.

В более широком смысле, вы не можете заставить подстановочные знаки работать с хэшированными именами хостов: если я хочу подключиться к webhost47, а строки хэшированы, как мне вообще узнать, есть ли строка, которая соответствует webhost*? Хеш — это лазейка, я могу найти эту строку только с помощью хэширования webhost*и проверки. Но мне также придется проверять ?ebhost47, w?bhost47, ??bhost47, и т. д. и т. п., так что это не совсем разумно.

(Я думаю, комментарий также означает, что вы не можете иметь

hashblurb1,hashblurb2 ssh-rsa …

с хэшированными именами хостов, даже если у вас есть

hostname1,hostname2 ssh-rsa …

и я не вижу технической причины, по которой этого нельзя было бы сделать.)

Связанный контент