ฉันมีไฟล์ PEM ซึ่งเพิ่มลงใน ssh-agent กำลังทำงานอยู่:
$ file query.pem
query.pem: PEM RSA private key
$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)
$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)
ฉันจะรับลายนิ้วมือของกุญแจ (ซึ่งฉันเห็นใน ssh-agent) ได้โดยตรงจากไฟล์ได้อย่างไร ฉันรู้ว่าssh-keygen -l -f some_key
ใช้ได้กับคีย์ ssh "ปกติ" แต่ไม่ใช่สำหรับไฟล์ PEM
ถ้าฉันลอง ssh-keygen ในไฟล์. pem ฉันจะได้รับ:
$ ssh-keygen -l -f ./query.pem
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.
กุญแจนี้เริ่มต้นด้วย:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
ซึ่งตรงข้ามกับคีย์ส่วนตัว "ปกติ" ซึ่งมีลักษณะดังนี้:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
ไม่สามารถอ่านไฟล์ privatekey ได้แม้ว่าการดำเนินการอื่น ๆssh-keygen
(และssh*
) จะทำ แต่เมื่อssh-keygen
สร้างที่สำคัญมันจะเขียนทั้งสองเช่นไฟล์ privatekey id_rsa
และไฟล์ publickey สอดคล้องกับการเพิ่มเช่น.pub
id_rsa.pub
เก่ากว่าssh-keygen -l
จะลองเพิ่ม.pub
ชื่อไฟล์ที่คุณระบุและอ่านไฟล์ publickey
.ssh/id_rsa
ไฟล์ที่สร้างโดย OpenSSH ใช้ค่าเริ่มต้นทั้งหมดเป็นไฟล์พีอีเอ็ม ไพรเวตคีย์จะเข้ารหัส PEM ตามค่าเริ่มต้น ในความเป็นจริงคุณสามารถใช้คีย์ RSA ที่คุณสร้างด้วย OpenSSL โดยตรงกับ OpenSSH