Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PKCS #8 keys

RFC 5208 (PKCS #8) defines a private key format informally known as PKCS #8 key format. It supports several encryption algorithms (3DES is used by default). To save keys using this format, specify SshPrivateKeyFormat.Pkcs8 when calling SshPrivateKey.Save.

Encrypted ExampleSample of encrypted private key in Base64-encoded PKCS #8 format:

-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIBpjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI5yNCu9T5SnsCAggA
MBQGCCqGSIb3DQMHBAhJISTgOAxtYwSCAWDXK/a1lxHIbRZHud1tfRMR4ROqkmr4
kVGAnfqTyGptZUt3ZtBgrYlFAaZ1z0wxnhmhn3KIbqebI4w0cIL/3tmQ6eBD1Ad1
nSEjUxZCuzTkimXQ88wZLzIS9KHc8GhINiUu5rKWbyvWA13Ykc0w65Ot5MSw3cQc
w1LEDJjTculyDcRQgiRfKH5376qTzukileeTrNebNq+wbhY1kEPAHojercB7d10E
+QcbjJX1Tb1Zangom1qH9t/pepmV0Hn4EMzDs6DS2SWTffTddTY4dQzvksmLkP+J
i8hkFIZwUkWpT9/k7MeklgtTiy0lR/Jj9CxAIQVxP8alLWbIqwCNRApleSmqtitt
Z+NdsuNeTm3iUaPGYSw237tjLyVE6pr0EJqLv7VUClvJvBnH2qhQEtWYB9gvE1dS
BioGu40pXVfjiLqhEKVVVEoHpI32oMkojhCGJs8Oow4bAxkzQFCtuWB1

MIIBpjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQINGy1T4l5EpQCAggA
MBQGCCqGSIb3DQMHBAg6pbq0RezDVQSCAWDx7hriZBN1U7lYlBAQw7V0lpwn3mzL
cyUFc+tfQ9U7KYXw5PxZUobYWIrQiFXAymVFBgi+IWRyXgNwKbtUxmkavslsI3DU
Xtee+XzsgMJ1TSN/PJpfNM7/y5o1jxp6LZU88wKo43AQCSdlAu9cDgzbWaL2bBAY
MihGto6+Bs1kL4bkHsHUVNz2fcWhbwwTqN6EjxC9wbppn+3lXdFOM6T/KrvPdZqa
AjX+EoD5RIKLEVCzTjx+OLTmkdXsAuwEGlW2Kih5jdeHL5cBu8wGbCa+wH9z+OBg
k2Q2+dErX60KAk/YApXkoET/bEFm40t+UO8HfaETk907lECfFrgpUU7/7MYOwZwK
mlPdAqC6+UCi0aEN2uIZ1WV+MK7laJaeD+Co9VZgsTHz8Egg5kZXq9e43c5DVjTo
wDrJ6GtaTFJYSgrjVpv+7eAkUdsP3ChXEUpYHCU1cEZ97gcgVbtlubwE
-----END ENCRYPTED PRIVATE KEY-----
 

Unencrypted ExampleSample of unencrypted private key in Base64-encoded PKCS #8 format:

-----BEGIN PRIVATE KEY-----
MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEA0SC5BIYpanOv6wSm
dHVVMRa+6iw/0aJpT9/LKcZ0XYQ43P9Vwn8c46MDvFJ+Uy41FwbxT+QpXBoLlp8D
sJY/dQIDAQABAkAesoL2GwtxSNIF2YTli2OZ9RDJJv2nNAPpaZxU4YCrST1AXGPB
tFm0LjYDDlGJ448syKRpdypAyCR2LidwrVRxAiEA+YU5Zv7bOwODCsmtQtIfBfhu
6SMBGMDijK7OYfTtjQsCIQDWjvly6b6doVMdNjqqTsnA8J1ShjSb8bFXkMels941
fwIhAL4Rr7I3PMRtXmrfSa325U7k+Yd59KHofCpyFiAkNLgVAiB8JdR+wnOSQAOY
loVRgC9LXa6aTp9oUGxeD58F6VK9PwIhAIDhSxkrIatXw+dxelt8DY0bEdDbYzky
r9nicR5wDy2W

MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAqqEXkcDqDLopGKCD
mPIIgmeSnTGMHZNfzHiaizHf8ruQmbxXh95qCY4LHC5/Bx3HNkWbE7XUW0oGJLOw
LLeHswIDAQABAkBRa8ecdKr64caEiuvhCvXGjHfo7ODIqC+ZmZ9ddrI/2Dt2QdIs
Dx1sLxKoSfvC/ppyt5DcaqQTIpvv/9QBdeIBAiEAyFI7WgkwyRWko1BM15y+fqyR
sieYNEwP1D/EleWlMQECIQDaDiR163FkcqJ/9VzcVHBhVrqE9qnQcL/a2yMmJzJE
swIgFJoAaJ4RWlzTdchIXtRL8xMkWMIhsR8xcY6tVQ0tFAECIQDAcvTpAghNAAO9
bV8ssnWQ40uxKEZNygT58qg99yAdkwIhAJk67u3r0AZOSMGkXqtS3KI2oJMO8JCw
m6PS1MOl91aZ
-----END PRIVATE KEY-----
 

PuTTY .ppk keys

This key format is used by PuTTY SSH client and utilities and by many PuTTY-derived third-party applications such as WinSCP or FileZilla Client. To save keys using this format, specify SshPrivateKeyFormat.Putty when calling SshPrivateKey.Save.

Sample of private key in PPKv2 format

Example:

PuTTY-User-Key-File-2: ssh-rsa

Encryption: aes256-cbc none
Comment: ssh-rsa-key-20130321 20170905
Public-Lines: 4 AAAAB3NzaC1yc2EAAAADAQABAAAAgQCdcXVZbOo81pToHiqMQgeosK80OXd8uxmC 514Mbp3VHL7eUshv9DlZ/Kc6vCpbkPLnkezLzy4QF9wQCiCem3+KFNbvgQ32R1vd ztguAIqrzzpoFjq2CPlyy7EuwmbI6k0xvcfAeU29MgnPk9/mkFFhW5084+9dwhz1 7BluYdJIEQ== 2
AAAAB3NzaC1yc2EAAAADAQABAAAAQQCqoReRwOoMuikYoIOY8giCZ5KdMYwdk1/M
eJqLMd/yu5CZvFeH3moJjgscLn8HHcc2RZsTtdRbSgYks7Ast4ez
Private-Lines: 8 FyXPkB7XlUE2y9WP7wGqmSwMo5RUdoqRbJGkHzMrpMlOOw5KA8QaxiOGixcDYuH4 8gTO4d8grFHcbRgZ7aJUycTdQxrPm8cey1EPUqLP9u3aCZYAqIMhUs5hsq7ujsq9 sK+jfTfY5N4ukYP2DumBreRPgKAE4W+gh/j//pnlJGJDEn32SOaRkiLoy1DB3VZ8 Nv8BPEAKV5ILKwef66KkN9FXPmEz3XQljEDcLNmzUTYypBQZqlYKze6V2cbZRZgi 7IYFV6ZGX8PMFnpSzwzoYfWXp9KQk1kmSqZNqBZ8IRt0KSSBAu5arKuZAI/MFQPU dwXyuZGt+4sP7pkE/1FuaMb8RENEyNcw/9mPKaJEcZuhtSqcwwZrXAULvca6BpdT hQwLIkovPa19ZA+miqfZvjo6UUnQyEfMe4biCesl11c/PWGf4BcgbVogQ+oXu7Gh iF1IoAoF/wqj0fiWX152wg== 4
AAAAQFFrx5x0qvrhxoSK6+EK9caMd+js4MioL5mZn112sj/YO3ZB0iwPHWwvEqhJ
+8L+mnK3kNxqpBMim+//1AF14gEAAAAhAMhSO1oJMMkVpKNQTNecvn6skbInmDRM
D9Q/xJXlpTEBAAAAIQDaDiR163FkcqJ/9VzcVHBhVrqE9qnQcL/a2yMmJzJEswAA
ACEAmTru7evQBk5IwaReq1Lcojagkw7wkLCbo9LUw6X3Vpk=
Private-MAC: bf45cca7382e573717004e328c08a9ac49f3ecf2 e4378e86478e8f1cdd2fb1bbb634965104a8808c
 

OpenSSH/OpenSSL (SSLeay)

keys #

keys

SSLeay key format is used by OpenSSH and OpenSSL suites for storing encrypted RSA and DSA keys. To save keys using this format, specify SshPrivateKeyFormat.OpenSsh when calling SshPrivateKey.Save.

A sample of a private key in OpenSSH format

Example:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,393C44619C5B62FB
g7l6jpFKUWqiU+7wvS+CRCpYygAchVIJTHmR9mTQwxQD6XUMMBfmLO+K6EgBGOt6
HxqTxQsAIAYtHQD370qQVC9aKF4Du2TkMiAlAiET6lyw7yEZeipkY46lJm74SvFJ
xo3dLERKJBcDfNDoBJK/zjJN9I2zfUT2DgPodJwzWCfnk4g+/wWD6wNOSGM57XjR
POQi4kJWI8zxX6v2REhybrfWwFxFaTpxMausotKa9R0hC+169DXGjnfXMPg6va6d
MUVPHKhoNzUInRWA1FPF+Vt9z5X2jQMGf4AJN7W65QE7Q0Boao+aOERKDVTzP1Ff
tRL6X0+BgXMjetqKGP0tJydiAVuP6vXEy1n8YrehUJSqNHJXT23o6kry/s7tMqzo
ke96suSNyQKmPPjFq4MKe+v+/9mQzA4UUcVWgCi2dqZxPhNsAzBXTyIrnFcPykOY
QPmdLMjpxeavbj8F5qZ8pREqDw+WpL8onI64udLFL3kjN5tCC9l3wHKDUJd6Q9y9
5gTKBnVcCRNvlKuLXbb7O5Z1hYKhpdqVJv8pLAhg2/BtTthseV8MjMnLEnbW6nSP
SPLlev76vk/QK6PIR9hQrJGrzXJDvcYEpXJ2YBcgvEIbKR/eFAsPeM4Gin00M6Rj
cDSO6p2ymxpiZ4AdDvgjkTkAx7ZXkxwrr7rRTOgyZZvuY/CpJbW4gs9a+zej5U77
RtWIHj+XZWvTQDPX5VcqDtE/C/bcsM9OQB019rkEcgDjKDtu9uWfDscSCxzMwfCi
xHrpJwudVCF3M6WAvfuB0SLc6UCBALHbln2SksaC+7teUwJP9XD8hg==

MIIBOwIBAAJBAKqhF5HA6gy6KRigg5jyCIJnkp0xjB2TX8x4mosx3/K7kJm8V4fe
agmOCxwufwcdxzZFmxO11FtKBiSzsCy3h7MCAwEAAQJAUWvHnHSq+uHGhIrr4Qr1
xox36OzgyKgvmZmfXXayP9g7dkHSLA8dbC8SqEn7wv6acreQ3GqkEyKb7//UAXXi
AQIhAMhSO1oJMMkVpKNQTNecvn6skbInmDRMD9Q/xJXlpTEBAiEA2g4kdetxZHKi
f/Vc3FRwYVa6hPap0HC/2tsjJicyRLMCIBSaAGieEVpc03XISF7US/MTJFjCIbEf
MXGOrVUNLRQBAiEAwHL06QIITQADvW1fLLJ1kONLsShGTcoE+fKoPfcgHZMCIQCZ
Ou7t69AGTkjBpF6rUtyiNqCTDvCQsJuj0tTDpfdWmQ==
-----END RSA PRIVATE KEY-----

New OpenSSH keys #

New OpenSSH format is used by OpenSSH for storing encrypted or unencrypted EcDSA and Ed25519 keys, although it supports other key algorithms as well. To save keys using this format, specify SshPrivateKeyFormat.NewOpenSsh when calling SshPrivateKey.Save.

A sample of a private key in the new OpenSSH format:

 -----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABAxBix87d
JvVrEotmWsbAZwAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIPKKmhHgVw5SM8IH
uo2XalsMHXvDwBxA7vL+TG/CACK9AAAAkNWU8rq/ToxIgS2BXVJNJI8SI8qHehGmUGEmMI
A+w+bpKwhfWj/Z24DHXrtdPpeTbUT7KHODlBu+StJpN1vtW5kNSuMpE9fL+0GEIasIDsEY
9xD1sLtGAy0pMR6yzB3EW2OEZE8NoTCKJ0Xq18km8Uo1KG8naT2DeSEDzuHSP6NQWkJx5k
BmP6jMW98HAsSIQA==
-----END OPENSSH PRIVATE KEY----- 

Passphrase

 

Exit Code Variable

 

Script timeout

...