Transforms an OpenPGP private key to OpenSSL / OpenSSH format
Project description
key-transform
Transforms an OpenPGP key to PKCS#8 and OpenSSH key format.
Supports RSA, ECDSA and ED25519 keys.
Installation
Install via pipx or uv tool
uv tool install key-transform
# OR
pipx install key-transform
Usage
# Lookup secret key(s) and note key fingerprint
gpg -K
~/.gnupg/pubring.kbx
-------------------------------------------------------------
sec ed25519 2026-02-06 [SC]
972ACF51A09C0259060CFA035432496985998071
uid [ultimate] Test Key <test@example.com>
ssb cv25519 2026-02-06 [E]
ssb rsa3072 2026-02-06 [A]
ssb ed25519 2026-02-06 [A]
ssb nistp256 2026-02-06 [A]
# Export the key
gpg --export-secret-key 972ACF51A09C0259060CFA035432496985998071 > secret_key.gpg
# Transform the key, output will be PKCS#8 and OpenSSH format
key-transform transform secret_key.gpg
#################### PGP Private Key 3F745041AAFE4699CB6FB57F3E311D69E96ADFDD RSAEncryptOrSign 3072 ####################
# SSH Pubkey:
ssh-rsa AAAAB3NzaC1yc2[...]
# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIHdTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQmv1ATOwwehUv7yd6
[...]
Nu6faDf4tiJQCfrBP0OL8Rt4yJTSHk79IZe8tysYfYVc01jl119v3Cc=
-----END ENCRYPTED PRIVATE KEY-----
# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABC4U2kyj10gkOYW
[...]
OxarmihrTQIcdQpD0Ts1NrV9A/eg3Pua+FRmuVVzfY+fT8bP5+ztIQ5SDmcxmDwNLGDY5vD6jcR0
q2Sf5Fl7k1uKj1QmPA==
-----END OPENSSH PRIVATE KEY-----
########################################################################################################################
############### PGP Private Key 82080A5C69729B254E767F10030959F32C2268B7 EdDSA EllipticCurveOID.Ed25519 ################
# SSH Pubkey:
ssh-ed25519 AAAAC3Nza[...]
# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIGjMF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBB+N0mJLilE1jtYvYNO
[...]
FmvKKIRiopWgsjUIgcPLRyoDWLdzKg==
-----END ENCRYPTED PRIVATE KEY-----
# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCUuri5leG0RFKe
[...]
K5+JAItSAMQnM9LV5g4PT6nn56VtsSaM3dF+PM0lSoeJDNkR/6pZ7LLyphCwKQ==
-----END OPENSSH PRIVATE KEY-----
########################################################################################################################
############## PGP Private Key 963E77E42934A3BD5EDB2139527CD0C853415507 ECDSA EllipticCurveOID.NIST_P256 ###############
# SSH Pubkey:
ecdsa-sha2-nistp256 AAAAE2VjZH[...]
# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBA1GnMpIItB3JYv51b9
[...]
PZn5p3E77Q==
-----END ENCRYPTED PRIVATE KEY-----
# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCqT2tcZRsyufkT
[...]
bg==
-----END OPENSSH PRIVATE KEY-----
########################################################################################################################
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
key_transform-1.0.1.tar.gz
(14.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file key_transform-1.0.1.tar.gz.
File metadata
- Download URL: key_transform-1.0.1.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c481042488288860776319ecf06af84be1df82106ddbf466f5d64fb6effbada
|
|
| MD5 |
d8ebb403396c247e4f0de93949ef449a
|
|
| BLAKE2b-256 |
aec84f1851cfb70079a58f7d3a25307a19a3a87222f3b5e44bb83f68f039571e
|
File details
Details for the file key_transform-1.0.1-py3-none-any.whl.
File metadata
- Download URL: key_transform-1.0.1-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef81a4200e480ca88142644c56094782e88a1a81921f4db12532ea5cb1a2ff27
|
|
| MD5 |
d76742a7e496bcd1d7764807db27af7c
|
|
| BLAKE2b-256 |
48f53c318f21a76531b83f1b9a9ef30a43b40c0570b85cf389fb618bad5c0ec5
|