При просмотре Deploy Keys в настройках репозитория GitLab ключи имеют "имя", а также какой-то отпечаток пальца. Отпечаток пальца выглядит так:

2b:be:a7:7f:44:64:89:8d:e3:f7:ea:3c:12:c9:e5:e7

Я пытаюсь выяснить, какой из моих пар ключей ssh эта соответствует. Как мне вычислить эту строку из существующей пары ключей ssh?

1 ответ1

0

Отпечатки ключа SSH - это просто хеши всего блока открытого ключа (большой AAAA...= большой двоичный объект в вашем id_rsa.pub). Сначала Base64-декодирует это поле, затем вычисляет его MD5-хеш и печатает его в шестнадцатеричном виде.

Вы можете вычислить отпечатки пальцев вручную ...

cat id_rsa.pub | awk '{print $2}' | base64 -d | md5sum

cat id_rsa.pub | awk '{print $2}' | base64 -d | openssl dgst -md5 -c

... или попросить OpenSSH сделать это (более удобно, потому что он также будет принимать файлы с закрытым ключом):

ssh-keygen -l -f <keyfile>

Более новые версии OpenSSH вместо этого используют хэш SHA256 и кодируют отпечаток пальца в Base64, а не в шестнадцатеричный формат. Чтобы новый ssh-keygen OpenSSH показал вам отпечаток MD5, просто добавьте -E md5:

ssh-keygen -l -f <keyfile> -E md5

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .