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

352

Когда вы генерируете ключ, вы получаете «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.|
+-----------------+
dlamblin
источник
5
Еще один вопрос, который я хотел бы задать; безопасно ли делиться своим изображением randomart с другими? Другими словами, учитывая случайное изображение, такое как приведенное выше, возможно ли выполнить обратный инжиниринг этого ключа?
AndyJ0076

Ответы:

259

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

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

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

отметка
источник
66
Если бы вы могли просто объяснить, почему люди проверяют ключи, это могло бы помочь, потому что, честно говоря, я склонен просто поместить свой открытый ключ в мой файл author_keys и покончить с этим.
Дламблин
43
@dlamblin: Вы обычно не проверяете свои собственные ключи с этим. Это, однако, было бы полезно для проверки ключа хоста удаленного компьютера. Одна из идей заключается в том, что если вы войдете на конкретный компьютер из разных мест (или не сохраните его ключ в файле known_hosts), вы сможете распознать «искусство» ключа хоста. Если это искусство внезапно изменилось, вам следует с осторожностью вводить пароль, потому что это может означать, что в вашем соединении идет атака «человек посередине» (или это может означать, что хост только что изменил свои ключи для какого-то другого причина).
Крис Джонсен
29
Хм, когда я смог увидеть искусство хозяев? (Я думаю, что никогда не делал.) Я видел такое изображение только после генерации пары ключей. И с чем бы мне пришлось сравнить это, чтобы распознать «внезапное» изменение.
DerMike
12
Держу пари, что randomart придерживается того же принципа, что и хеши для проверки целостности, а именно: небольшая разница во входных данных приводит к совершенно разным результатам. Это означало бы, что вам просто нужно запомнить грубую форму ожидаемого randomart, чтобы иметь возможность заметить, что что-то не так. Конечно, это не работает на практике, когда SSH и другие не показывают вам randomart хоста, к которому вы подключаетесь (они должны делать это, даже если хост известен).
Алан Плам
2
Я полагаю, что они наиболее полезны, когда открытые ключи обмениваются лично для проверки целостности после завершения копирования.
jordanpg
198

Добавлять

-o VisualHostKey=yes 

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

VisualHostKey=yes 

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

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

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

Пол Мюррей
источник
9
Не хорошо. Если вы уже входили в систему, гораздо лучше, чтобы компьютер распознал вас с помощью сохраненного отпечатка пальца. Эта функция предназначена только для входа на новые машины.
Николас Уилсон
57
Поздно до этого ответа, но стоит отметить, что это было бы очень полезно, если вы входили с другой машины, на которой не было всех ваших known_hosts. В этом случае компьютер не сможет проверить, что он известен, но пользователь должен увидеть «Это выглядит иначе, чем обычно!» и прервать
Xkeeper
9
Разрешение вашему компьютеру выполнять распознавание уязвимо для взлома известных узлов вашего компьютера. Так же, как вы не должны позволять вашему компьютеру вводить пароли для вас, вам лучше проверить ключ хоста самостоятельно.
Марко Топольник
37

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

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

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

Ник
источник
8
Это последнее предложение действительно стоит знать. В OpenBSD Journal @ Undeadly.org информация о выпуске OpenSSH 6.8 гласит: «Обратите внимание, что визуальные ключи хоста также будут другими». Более новое программное обеспечение показывает изображения, отличные от изображений, показанных более старым программным обеспечением.
TOOGAM
11

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, соответствующий открытому ключу этого сервера, или нет. Что проще и быстрее, чем проверка последовательности символов самого открытого ключа!

tmangin
источник