Format de clé publique SSH

11

J'ai une clé publique au format:

---- BEGIN SSH2 PUBLIC KEY ----

Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==

---- END SSH2 PUBLIC KEY ----

Habituellement, je vois des clés au format comme ceci:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]

Puis-je simplement copier la première clé dans le fichier authorized_keys ou dois-je la modifier pour qu'elle ressemble à la seconde? Je pense que le premier a été généré par PUTTYgen tandis que le second a été généré par ssh-keygen.

Hans
la source

Réponses:

16

utiliser ssh-keygen -ipour convertir le format compatible SSH2 en format compatible OpenSSH.

de man ssh-keygen:

-i Cette option lit un fichier de clé privée (ou publique) non chiffré au format compatible SSH2 et imprime une clé privée (ou publique) compatible OpenSSH sur stdout. ssh-keygen lit également le format de fichier de clé publique RFC 4716 SSH. Cette option permet d'importer des clés à partir de plusieurs implémentations SSH commerciales.

alexus
la source
4

Vous devez convertir la clé publique en convention openssh:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]== somename-20060227

Assurez-vous également que la clé occupe exactement une ligne et qu'aucun saut de ligne n'a été introduit lors de la copie.

Dmitri Chubarov
la source
4

Voici la réponse complète et correcte:

ssh-keygen -i -m PKCS8 -f public-key.pem

Boeboe
la source
1
"RFC4716" est le format de clé par défaut, et -m semble être pour spécifier le format de l'ENTRÉE dans ce cas, pas la sortie, donc vous avez raison.
JimNim
Techniquement, la réponse "correcte" d'Alexus n'est PAS fausse, car cette réponse n'énonce pas la syntaxe complète - pointant uniquement vers l'indicateur principal à utiliser, laissant la nécessité de vérifier -i syntaxe / utilisation dans la page de manuel.
JimNim
2

Réécrivez simplement votre clé dans un format adapté à authorized_keys:

keytype keybody keyname

Gardez à l'esprit que les "==" de fin sont des espaces réservés nécessaires pour conserver la longueur de clé égale à la longueur souhaitée.

Kondybas
la source
4
Les "==" de fin sont des remplissages Base64
Andrew
comment savoir si son RSA ou DSA?
Hans