Что такое randomart от ssh-keygen?

81273
dlamblin

Когда вы генерируете ключ, вы получаете «randomart» из более новых версий OpenSSH. Я не могу найти объяснение, почему и для чего я должен его использовать.

Generating public/private rsa key pair. The key fingerprint is: 05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i The key's randomart image is: +--[ RSA 2048]----+ | o=. | | o o++E | | + . Ooo. | | + O B.. | | = *S. | | o | | | | | | | +-----------------+  Generating public/private dsa key pair. The key fingerprint is: b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i The key's randomart image is: +--[ DSA 1024]----+ | o.o | | .= E.| | .B.o| | .= | | S = .| | . o . .= | | . . . oo.| | . o+| | .o.| +-----------------+ 
330

5 ответов на вопрос

247
mark

Randomart предназначен для людей, чтобы облегчить проверку ключей.

Валидация обычно выполняется путем сравнения бессмысленных строк (то есть шестнадцатеричного представления отпечатка ключа), которые люди довольно медленно и неточно сравнивают. Randomart заменяет это структурированными изображениями, которые быстрее и проще сравнивать.

В этой статье «Визуализация хеша: новая техника для повышения безопасности в реальном мире», Perrig A. and Song D., 1999, Международный семинар по криптографическим методам и электронной коммерции (CrypTEC '99), объясняются некоторые методы и преимущества.

Если бы вы могли просто объяснить, почему люди проверяют ключи, это могло бы помочь, потому что, честно говоря, я склонен просто поместить свой открытый ключ в мой файл author_keys и покончить с этим. dlamblin 14 лет назад 59
@dlamblin: Вы обычно не проверяете свои собственные ключи с этим. Это, однако, было бы полезно для проверки ключа хоста удаленного компьютера. Одна из идей заключается в том, что если вы войдете на конкретный компьютер из разных мест (или не сохраните его ключ в файле known_hosts), вы сможете распознать «искусство» ключа хоста. Если это искусство внезапно изменилось, вам следует с осторожностью вводить пароль, поскольку это может означать, что в вашем соединении идет атака «человек посередине» (или это может означать, что хост только что изменил свои ключи для какого-то другого причина). Chris Johnsen 14 лет назад 37
Хм, когда я смог увидеть искусство хозяев? (Я думаю, что никогда не делал.) Я видел такое изображение только после генерации пары ключей. И с чем бы мне пришлось сравнить это, чтобы распознать «внезапное» изменение. DerMike 13 лет назад 24
Держу пари, что randomart придерживается того же принципа, что и хеши для проверки целостности, а именно: небольшая разница во входных данных приводит к совершенно разным результатам. Это означало бы, что вам просто нужно запомнить грубую форму ожидаемого randomart, чтобы иметь возможность заметить, что что-то не так. Конечно, это не работает на практике, когда SSH и другие не показывают вам randomart хоста, к которому вы подключаетесь (они должны делать это, даже когда хост известен). Alan Plum 13 лет назад 11
Я полагаю, что они наиболее полезны, когда открытые ключи обмениваются лично для проверки целостности после завершения копирования. jordanpg 9 лет назад 2
@DerMike, если вы еще не видели, другой ответ на ваш вопрос. chreekat 8 лет назад 0
9 лет спустя (я старый) у меня слишком много разных хостов, к которым я подключаюсь. Распознавание изменений маловероятно. dlamblin 6 лет назад 1
178
Paul Murray

добавлять

-o VisualHostKey=yes 

в вашей командной строке, или положить

VisualHostKey=yes 

в вашем ~/.ssh/config.

Вы увидите randomart коробки, в которую вы входите. Если вы войдете в систему однажды, и случайное искусство будет другим (ваш мозг должен идти Эй, я не узнаю этого!), То, возможно, кто-то взломал или что-то в этом роде.

Идея в том, что вам не нужно делать это сознательно. Один из ключей для одной из наших машин выглядит как бабочка. Еще один вид выглядит как член (да, наш мозг примитивен). Если вы входите в систему каждый день, вы привыкнете к изображениям, даже не пытаясь.

Не хорошо. Если вы уже входили в систему, гораздо лучше, чтобы компьютер распознал вас с помощью сохраненного отпечатка пальца. Эта функция предназначена только для входа на новые машины. Nicholas Wilson 11 лет назад 7
Поздно до этого ответа, но стоит отметить, что это было бы очень полезно, если вы входили в систему с другого компьютера, на котором не было всех ваших known_hosts. В этом случае компьютер не сможет проверить, что он известен, но пользователь должен увидеть «Это выглядит иначе, чем обычно!» и прервать Xkeeper 11 лет назад 50
Разрешение вашему компьютеру выполнять распознавание уязвимо для взлома известных узлов вашего компьютера. Точно так же, как вы не должны позволять вашему компьютеру вводить пароли для вас, вам лучше проверить ключ хоста самостоятельно. Marko Topolnik 8 лет назад 5
36
Nick

Официальный анонс: OpenSSH 5.1 выпущен

Представьте экспериментальную визуализацию SSH Fingerprint ASCII для ssh (1) и ssh-keygen (1). Визуальное отображение отпечатков пальцев контролируется новой опцией ssh_config (5) «VisualHostKey». Намерение состоит в том, чтобы визуализировать ключи хоста SSH в визуальной форме, которую можно легко вызывать и отклонять измененные ключи хоста. Эта техника основана на графических схемах визуализации хэшей, известных как «случайное искусство [*]», и размышлениях Дана Камински в 23C3 в Берлине.

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

Это последнее предложение действительно стоит знать. [Информация OpenBSD Journal @ Undeadly.org о выпуске OpenSSH 6.8] (http://undeadly.org/cgi?action=article&sid=20150320130957&mode=expanded) гласит: «Обратите внимание, что визуальные ключи хоста также будут другими». Более новое программное обеспечение показывает изображения, отличные от изображений, показанных более старым программным обеспечением. TOOGAM 8 лет назад 8
25
loomi

Вы можете найти подробный анализ randomart VisualHostKey в короткой статье «Пьяный епископ» .

10
tmangin

Randomart, отображаемый после генерации ssh-keygen, является графическим представлением ключа, который вы только что сгенерировали. Затем:

  • Randomart не очень полезен для пользователя, который сгенерировал ssh-ключ

  • Randomart может быть очень полезен для пользователя, использующего соединение через SSH для частого подключения к одному и тому же серверу : если он добавил опцию «-o VisualHostKey = yes» в свою команду SSH:

    ssh user@domainname.com -o VisualHostKey = да

Randomart, соответствующий открытому ключу сервера, будет отображен.

Чтобы увидеть пример, вы можете попробовать:

ssh git@github.com -o VisualHostKey = да

В случае, когда пользователь часто подключается к одному и тому же серверу, он может быстро и легко проверить, распознает ли он Randomart, соответствующий открытому ключу этого сервера, или нет. Что проще и быстрее, чем проверка строки символов самого открытого ключа!

Похожие вопросы