Проверьте публичный SSH-ключ
Вставьте содержимое файла .pub одной строкой. В ответ — алгоритм, настоящая длина ключа, отпечаток SHA256 ровно в том виде, в каком его печатает ssh-keygen -lf, и оценка с объяснением, за что она поставлена.
Публичный ключ на то и публичный — его положено раздавать. И всё-таки эта страница разбирает его в браузере: инструмент, который просит вставить ключевой материал и отправляет его куда-то, приучает к плохой привычке.
Вставьте или перетащите ключ
Ключ читается в этой вкладке. Отпечаток считает встроенный в браузер WebCrypto, а не сервер. После загрузки страница не делает ни одного сетевого запроса и не несёт счётчиков.
Результат
—
Если решите перевыпустить
ssh-keygen -t ed25519 -C "you@example.com"
Скопировано.
Как выставляются оценки
- A — Ed25519, Ed25519 на аппаратном ключе, ECDSA на P-384 или P-521, RSA от 3072 бит.
- B — RSA-2048, ECDSA на P-256. Сегодня приемлемо, запаса на завтра не осталось.
- C — RSA от 1024 до 2047 бит. Ниже нынешнего порога, часть серверов такой ключ уже не принимает.
- D — всё, что короче, и DSA любой длины. Поддержку DSA OpenSSH удалил целиком в 10.0.
Длина читается из самого ключа, а не угадывается по типу: у RSA модуль измеряется побитово, без ведущего нулевого байта, который добавляет формат при поднятом старшем бите. Поэтому число здесь совпадает с ssh-keygen -lf, а не с округлённой догадкой.
Как выглядит обрезанный ключ
Тело SSH-ключа — это цепочка полей с длиной впереди. Такая структура самосогласована, и ключ, обрезанный посередине, часто всё равно разбирается: первое поле говорит ssh-ed25519, длины сходятся, никто не жалуется.
Ранняя версия этой страницы ставила такому обрывку оценку A. Теперь состав полей сверяется с типом: у Ed25519 обязаны быть 32 байта открытой части, у RSA — экспонента и непустой модуль, у ECDSA — имя кривой и точка. Ключ без них объявляется неполным, а не оценивается.
Вопросы, которые задают на самом деле
Мой ключ уходит на сервер?
Нет. Ключ разбирается в браузере, отпечаток считает встроенный в браузер WebCrypto, а не сервер. После загрузки страница не делает ни одного запроса и не несёт счётчиков, так что спорить не о чем — откройте вкладку «Сеть» и вставьте ключ.
Ed25519 лучше RSA?
Для SSH — да, по тем признакам, которые имеют значение. Ключ Ed25519 занимает 68 символов против примерно 730 у RSA-4096, подпись и проверка быстрее, а реализация работает за постоянное время по устройству, а не по старанию. RSA от 3072 бит по-прежнему вполне надёжен, RSA-2048 — это минимум, и планка растёт.
Что такое xchacha20?
Потоковый шифр со 192-битным одноразовым значением, применяемый вместе с Poly1305 для проверки целостности. Это не тип SSH-ключа: им Conchshell запечатывает хранилище учётных данных, а ключ выводит Argon2id. В самом SSH вы встречаете его близкого родственника chacha20-poly1305 — шифр транспорта по умолчанию в OpenSSH.
Что вообще видно по публичному ключу?
Алгоритм, длина, признак аппаратного ключа, комментарий, который оставил владелец, и отпечаток SHA256, по которому ключ опознают. Ничего о приватной половине и ничего, что помогло бы ключом воспользоваться.
Почему отпечаток совпадает с ssh-keygen до символа?
Потому что считается так же: SHA-256 по декодированному телу ключа, base64 без выравнивания, с приставкой SHA256:. Именно этим равенством инструмент и проверяется — пять настоящих типов ключей, созданных ssh-keygen, а разрядность и отпечатки сверены с его собственным выводом.
Что будет, если по ошибке вставить приватный ключ?
Он не обрабатывается. Текст проверяется на признаки приватного ключа до всего остального, появляется предупреждение, а поле очищается при уходе из него — чтобы ключ не остался ни в странице, ни в восстановлении формы.
Откуда это взялось
Conchshell предпочитает ключи хоста Ed25519 и договаривается о curve25519-sha256, а учётные данные держит в хранилище под XChaCha20-Poly1305 с ключом от Argon2id. Ваши приватные ключи остаются лежать там, где лежат: приложение указывает на файл, а не копирует его в себя.
Что честно знать до решения: он умеет пароль, приватный ключ и зашифрованный ключ с парольной фразой — и больше ничего. Если ваша схема держится на отдельной программе-агенте, хранящей ключи, она сюда не переедет.
Что почитать дальше
- Проверка ~/.ssh/config — шифры, MAC, обмен ключами и проверка ключа хоста
- Сколько весят эти клиенты — замеренные размер и память, с методикой
- Как устроено хранилище учётных данных
- Conchshell: SSH, SFTP, FTPS и RDP в одном окне
- Загрузка