[Bug 3849] New: Allow private key files without a newline at the end

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Mon Jul 14 05:10:36 AEST 2025


https://bugzilla.mindrot.org/show_bug.cgi?id=3849

            Bug ID: 3849
           Summary: Allow private key files without a newline at the end
           Product: Portable OpenSSH
           Version: -current
          Hardware: amd64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P5
         Component: ssh
          Assignee: unassigned-bugs at mindrot.org
          Reporter: yedaya.ka at gmail.com

Currently ssh and ssh-keygen don't manage to read private keys that
don't have a newline at the end. It fails with this error:
```
openssh-portable/$ ./ssh-keygen -y -f no_newline_ed25519
Load key "no_newline_ed25519": error in libcrypto
```
Adding a newline to the end fixes it:
```
openssh-portable/$ echo $'\n' >> no_newline_ed25519
openssh-portable/$ ./ssh-keygen -y -f no_newline_ed25519
ssh-ed25519
AAAAC3NzaC1lZDI1NTE5AAAAIImNVUrqnrw2eKhwaX1bGpNu3isBRESXny4NF9gjnHRi
comment
```
Earlier versions failed with an `invalid format` error.

I suggest not checking if there is a new line (\n) at the end of the
private key. This matches the behavior of openssl, and in general makes
it more user friendly. A lot of text editors don't show if there is a
newline at the end of the file, and private keys are often copied and
pasted.
See some examples for people having trouble with this behaviour:
[1][2][3][4]

>From RFC 7468[5] it seems that a new line at the end of PEM encoded
messages aren't necessary, although if I understand correctly the
openssh key format isn't strictly in PEM format.

>From looking at the code, the main change needed is to remove the '\n'
from the end of `MARK_END` in sshkey.c.

What do you think?

[1] https://github.com/semaphoreui/semaphore/issues/183
[2] https://github.com/openshift/console/issues/6858
[3] https://madhead.me/posts/private-key-newline-fuckup/
[4] https://github.com/jenkinsci/ssh-credentials-plugin/pull/33
[5] https://www.rfc-editor.org/rfc/rfc7468.html#section-3

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list