С помощью этой команды можно сгенерировать пару открытого и закрытого ключей RSA:
ssh-keygen -f key
Теперь я хотел бы загрузить эти ключи в Python, используя модуль cryptography
. Пример:
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
with open("key.pub", "rb") as f:
datapub = f.read()
public_key = serialization.load_ssh_public_key(datapub, backend=default_backend())
Но теперь: как вы сгенерируете отпечаток пальца из этого открытого ключа? С OpenSSH это можно сделать с помощью ssh-keygen -lf key.pub
. Но как сделать то же самое в Python?
RSAPublicKey
, напримерpublic_key
. Отпечаток определяется в контексте формата, например. ОткрытьSSH. Здесь отпечаток пальца — это хэш SHA256 декодированного открытого ключа Base64. Одним из способов его определения может быть сериализация экземпляраRSAPublicKey
в формате OpenSSH, например. сpublic_key.public_bytes(...)
(что, конечно, приводит кdatapub
для опубликованного примера) и определите соответствующий хеш, например. с (но с использованием SHA256). - person user 9014097   schedule 08.11.2020