OpenSSH, PKCS # 12 dosyalarını kutudan çıkaramaz. Diğerlerinin önerdiği gibi, özel anahtarı sizi OpenSSL diyarından OpenSSH'ye götüren PEM formatında çıkarmalısınız. Burada bahsedilen diğer çözümler benim için işe yaramıyor. OS X 10.9 Mavericks'i (şu anda 10.9.3) “hazır ambalajlı” yardımcı programlarla (OpenSSL 0.9.8y, OpenSSH 6.2p2) kullanıyorum.
İlk olarak, doğrudan OpenSSH tarafından kullanılacak PEM formatında özel bir anahtar alın:
openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts | openssl rsa > ~/.ssh/id_rsa
Özel anahtarı şifre ile şifrelemenizi şiddetle tavsiye ederim:
openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts | openssl rsa -passout 'pass:Passw0rd!' > ~/.ssh/id_rsa
Açıkçası, komut satırına düz metin bir parola yazmak da güvenli değildir, bu nedenle son komutu geçmişten silmeniz veya oraya ulaşmadığından emin olmanız gerekir. Farklı mermilerin farklı yolları vardır. Bash ve diğer birçok mermide tarihe kaydedilmesini önlemek için komutunuza boşluk önek ekleyebilirsiniz. Bash'teki geçmişten komutu nasıl sileceğiniz aşağıda açıklanmıştır:
history -d $(history | tail -n 2 | awk 'NR == 1 { print $1 }')
Alternatif olarak, özel anahtar parolasını OpenSSL'ye geçirmek için farklı bir yol kullanabilirsiniz - geçiş deyimi bağımsız değişkenleri için OpenSSL belgelerine bakın .
Ardından, yetkili_anahtarlar dosyasına eklenebilecek bir OpenSSH genel anahtarı oluşturun:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub