go_sshkeys/_ref/KEY_GUIDE.adoc

1.5 KiB
Raw Blame History

OpenSSH Key Structure Guide

1. Purpose

This document attempts to present a much more detailed, thorough, and easily-understood form of the key formats used by OpenSSH. The extent of those formats' canonical documentation is the OpenSSH source trees PROTOCOL.key, which is a little lacking.

2. Basic Introduction

2.1. Legacy

2.1.1. Private Keys

In OpenSSH pre-7.8, private keys are stored in their respective PEM encoding[1] with no modification. These legacy private keys should be entirely usable by OpenSSL/LibreSSL/GnuTLS etc. natively with no conversion necessary.

2.1.2. Public Keys

Each public key file (*.pub) is written out in the following format:

A B C

Where:

A

The key type (e.g. ssh-rsa, ssh-ed25519, etc.)

B

The public key itself, Base64[2]-encoded

C

The keys comment

The structures specified in the breakdowns later in this document describe the decoded version of B only.

3. Keytype-Specific Breakdowns

Unresolved directive in <stdin> - include::rsa/main.adoc[]