Tôi có một tệp PEM mà tôi thêm vào một ssh-agent đang chạy:
$ 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)
Làm cách nào tôi có thể lấy dấu vân tay của khóa (mà tôi thấy trong ssh-agent) trực tiếp từ tệp? Tôi biết ssh-keygen -l -f some_keyhoạt động cho các khóa ssh "bình thường", nhưng không phải cho các tệp PEM.
Nếu tôi thử ssh-keygen trên tệp .pem, tôi nhận được:
$ 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.
Phím này bắt đầu bằng:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
trái ngược với khóa riêng "thông thường", trông giống như:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -lkhông thể đọc tệp tin riêng tư, mặc dù các thao tác ssh-keygen(và ssh*) khác thực hiện. Nhưng khi ssh-keygen tạo khóa, nó ghi cả tệp tin privatekey, ví dụ id_rsa và tệp công khai tương ứng có .pubthêm ví dụ id_rsa.pub. Cũ hơn ssh-keygen -l sẽ thử thêm .pubvào tên tệp bạn chỉ định và đọc tệp công khai đó.
.ssh/id_rsatệp được tạo bởi OpenSSH bằng cách sử dụng tất cả các giá trị mặc định là tệp PEM. Các khóa riêng được mã hóa PEM theo mặc định. Trong thực tế, bạn có thể sử dụng các khóa RSA mà bạn tạo bằng OpenSSL trực tiếp với OpenSSH.