Как вычислить отпечаток ключа развертывания GitLab из пары ключей ssh

304
rlandster

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

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

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

0

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

0
grawity

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

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

cat id_rsa.pub | awk '' | base64 -d | md5sum  cat id_rsa.pub | awk '' | 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 

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