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_key
hoạ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 -l
khô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ó .pub
thêm ví dụ id_rsa.pub
. Cũ hơn ssh-keygen -l
sẽ thử thêm .pub
vào tên tệp bạn chỉ định và đọc tệp công khai đó.
.ssh/id_rsa
tệ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.