Extrait de clés publique/privée de PKCS12 fichier pour une utilisation ultérieure dans SSH-PK-Authentification
Je veux extraire les clés publique et privée à partir de mon fichier PKCS#12 pour les utiliser plus tard dans SSH-une Clé Publique d'Authentification.
Maintenant, je suis de la génération de clés via ssh-keygen que j'ai mis en .ssh/authorized_key, en quelque part sur le côté client.
À l'avenir, je veux utiliser les clés à partir d'un fichier PKCS#12 conteneur, donc j'en ai pour extraire la clé publique d'abord de fichier PKCS#12, puis de les mettre dans le .ssh/authorized_keys-fichier. Est-il possible de le faire fonctionner via openssl? Sont les clés PKCS#12 compatible pour ssh-clé publique d'authentification?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les commandes suivantes pour extraire publique/clé privée à partir d'un fichier PKCS#12 conteneur:
PKCS#1 clé Privée
Certificats:
openssl rsa -in privateKey.pem -out private.pem
-passout pass:
. Il attend le paramètre à être dans la forme de pass:monmotdepasse. stackoverflow.com/a/27497899/206277-nodes
exporte la clé correctementC'est possible avec un peu de conversion de format.
Pour extraire la clé privée dans un format openssh pouvez utiliser:
Pour convertir la clé privée d'une clé publique:
D'extraire la clé publique dans un format openssh pouvez utiliser:
OpenSSH ne peut pas utiliser le fichier PKCS#12 fichiers de la boîte. Comme d'autres l'ont suggéré, vous devez extraire la clé privée au format PEM qui vous obtient à partir de la terre de OpenSSL pour OpenSSH. D'autres solutions mentionnées ici ne fonctionne pas pour moi. J'utilise OS X 10.9 Mavericks (10.9.3 pour le moment) avec “préemballé” utilitaires (OpenSSL 0.9.8 y, OpenSSH 6.2p2).
Premier, extrait d'une clé privée au format PEM qui seront utilisés directement par OpenSSH:
Je vous suggère fortement de chiffrer la clé privée avec mot de passe:
Évidemment, l'écriture d'un texte brut mot de passe sur la ligne de commande n'est pas en sécurité, vous devez supprimer la dernière commande de l'histoire ou tout simplement assurez-vous de ne pas y arriver. Différentes coquilles ont différentes façons. Vous pouvez ajouter un préfixe de votre commande avec de l'espace pour éviter qu'elle soit enregistrée dans l'historique de Bash et beaucoup d'autres coquillages. Voici aussi comment faire pour supprimer la commande de l'histoire de Bash:
Alternativement, vous pouvez utiliser différentes façon de passer une clé privée mot de passe pour OpenSSL - consulter OpenSSL documentation de la phrase de passe arguments.
Ensuite, créer une OpenSSH clé publique qui peuvent être ajoutées au fichier authorized_keys:
| openssl rsa
des trucs?~/.ssh/id_rsa
), avec quelques “trucs” comme Sac Attributs sans ` | openssl rsa. Je suppose que OpenSSH et d'autres utilitaires qui utilisent une fiche d'identité peut gérer que les trucs (je n'ai pas essayé), mais je suis simplement utilisé pour fournir uniquement les données nécessaires et rien de plus, surtout si c'est quelque chose autour de la sécurité.openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts
Solution 1:
Extrait P12 de jks
Extrait de PEM de P12 et Modifier le fichier pem et de crt fichier
Extraire la clé de jks
Solution 2:
Extrait de PEM et encryptedPrivateKey fichier txt``
Décrypter privateKey
echo hello
.Mise à jour: j'ai remarqué que ma réponse était juste une mauvaise copie d'un bien expliqué question sur https://unix.stackexchange.com/... par BryKKan
Voici un extrait:
Autant que je sache, PKCS#12 est tout simplement un certificat de clé publique/privée store. Si vous avez extrait une clé publique à partir de fichier PKCS#12, OpenSSH devrait être en mesure de l'utiliser aussi longtemps que il a été extrait dans PEM format. Vous savez probablement déjà que vous avez également besoin d'une clé privée correspondante (également dans PEM) afin de l'utiliser pour ssh-clé publique d'authentification.
Accepté la réponse est la bonne commande, je veux juste ajouter une chose, lors de l'extraction de la clé si vous laissez le PEM mot de passe("Enter PEM pass phrase:") vides, puis la clé complète ne sera pas extrait, mais seulement la localKeyID seront extraites. Pour obtenir la clé complète, vous devez spécifier un PEM mot de passe whem exécutant la commande suivante.
Veuillez noter que quand il s'agit de l'Importation de mot de passe, vous pouvez spécifier le mot de passe pour "Entrer dans l'Importation Mot de passe:" ou pouvez laisser ce champ mot de passe vide.