Saya ingin mengekstrak kunci publik dan pribadi dari PKCS#12
file saya untuk digunakan nanti di SSH-Public-Key-Authentication.
Saat ini, saya menghasilkan kunci melalui ssh-keygen yang saya masukkan .ssh/authorized_key
, masing-masing di sisi klien.
Di masa depan, saya ingin menggunakan kunci dari PKCS#12
wadah, jadi saya harus mengekstrak kunci publik terlebih dahulu PKCS#12
dan kemudian memasukkannya ke .ssh/authorized_keys
file. Apakah ada peluang untuk membuatnya berfungsi openssl
? Apakah kunci dalam PKCS#12
kompatibel untuk otentikasi kunci publik?
openssl rsa -in privateKey.pem -out private.pem
-passout pass:
. Itu mengharapkan parameter berada dalam bentuk pass: mypassword. stackoverflow.com/a/27497899/206277-nodes
kunci ekspor dengan benarIni dimungkinkan dengan sedikit konversi format.
Untuk mengekstrak kunci pribadi dalam format openssh dapat menggunakan:
Untuk mengonversi kunci pribadi ke kunci publik:
Untuk mengekstrak kunci publik dalam format openssh dapat menggunakan:
sumber
OpenSSH tidak dapat menggunakan file PKCS # 12 di luar kotak. Seperti yang disarankan orang lain, Anda harus mengekstrak kunci pribadi dalam format PEM yang membawa Anda dari tanah OpenSSL ke OpenSSH. Solusi lain yang disebutkan di sini tidak bekerja untuk saya. Saya menggunakan OS X 10.9 Mavericks (10.9.3 saat ini) dengan utilitas "prepackaged" (OpenSSL 0.9.8y, OpenSSH 6.2p2).
Pertama, ekstrak kunci pribadi dalam format PEM yang akan digunakan langsung oleh OpenSSH:
Saya sangat menyarankan untuk mengenkripsi kunci pribadi dengan kata sandi:
Jelas, menulis kata sandi teks biasa pada command-line juga tidak aman, jadi Anda harus menghapus perintah terakhir dari histori atau hanya memastikannya tidak sampai di sana. Kerang yang berbeda memiliki cara yang berbeda pula. Anda bisa mengawali perintah Anda dengan ruang untuk mencegahnya disimpan ke histori di Bash dan banyak shell lainnya. Berikut ini juga cara menghapus perintah dari histori di Bash:
Atau, Anda dapat menggunakan cara berbeda untuk mengirimkan kata sandi kunci pribadi ke OpenSSL - lihat dokumentasi OpenSSL untuk argumen frasa sandi .
Kemudian, buat kunci publik OpenSSH yang dapat ditambahkan ke file Authorized_key:
sumber
| openssl rsa
barang itu?~/.ssh/id_rsa
) dengan beberapa "cruft" seperti Bag Attributes tanpa `| openssl rsa`. Saya kira OpenSSH dan utilitas lain yang menggunakan file identitas dapat menangani kesalahan itu (saya belum pernah mencoba), tetapi saya hanya terbiasa menyediakan hanya data yang diperlukan dan tidak lebih, terutama jika itu adalah masalah keamanan.openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts
Solusi 1:
Ekstrak P12 dari jks
Ekstrak PEM dari P12 dan Edit file dan pem dari file crt
Ekstrak kunci dari jks
Solusi 2:
Ekstrak PEM dan dienkripsiPrivateKey ke file txt```
Dekripsi privateKey
sumber
echo hello
.Pembaruan: Saya perhatikan bahwa jawaban saya hanyalah duplikat buruk dari pertanyaan yang dijelaskan dengan baik di https: //unix.stackexchange.com / ... oleh BryKKan
Berikut adalah kutipan darinya:
sumber
Sejauh yang saya tahu PKCS # 12 hanyalah toko kunci sertifikat / publik / swasta. Jika Anda mengekstrak kunci publik dari file PKCS # 12, OpenSSH harus dapat menggunakannya selama itu diekstraksi dalam format PEM . Anda mungkin sudah tahu bahwa Anda juga memerlukan kunci pribadi yang sesuai (juga dalam PEM ) untuk menggunakannya untuk otentikasi ssh-public-key.
sumber
Jawaban yang diterima adalah perintah yang benar, saya hanya ingin menambahkan satu hal tambahan, ketika mengekstraksi kunci jika Anda membiarkan kata sandi PEM (
"Enter PEM pass phrase:"
) kosong maka kunci lengkap tidak akan diekstraksi tetapi hanyalocalKeyID
akan diekstraksi. Untuk mendapatkan kunci lengkap, Anda harus menentukan kata sandi PEM yang menjalankan perintah berikut.Harap dicatat bahwa ketika datang ke Impor kata sandi, Anda dapat menentukan kata sandi yang sebenarnya
"Enter Import Password:"
atau membiarkan kata sandi ini kosong:sumber