Question is simple:
What are the (private) key types and (their specification - format, syntax) accepted by current openSSH?
The vague answer "the keys generated by
ssh-keygen" is not accepted - I know it. They are called PEM with such headers (RSA, DSA, ECDSA variations):
-----BEGIN RSA PRIVATE KEY-----
The other format is described in PROTOCOL.key and is extension by
openssh. It is also used as a default for
Ed25519 keys, as stated in manual and (regardless passphrase) marked with header:
-----BEGIN OPENSSH PRIVATE KEY-----
There are also legacy
RSA1 keys that should be gone today with SSHv1 protocol, but can be identified by the header:
SSH PRIVATE KEY FILE FORMAT 1.1
Are there any others? I am searching for more verbose description of other keys. I didn't find it (so far) explicitly specified in any manual page nor in any RFC for SSH.
The bonus question (not needed to answer, but I would appreciate the insight):
What is the reason behind (
openssh) decoding every dummy file and asking for a passphrase, even if it does not have the proper header?
Footnote: Question was originally posted on openssh-unix-dev list, but so far without any answer so I am trying this awesome community, if there is somebody able to answer it.