2 min read

Generating a ED25519 SSH key with OpenSSH

OpenSSH has deprecated RSA keys. Time to swap to ED25519 with a few quick commands as well as an easy way to ease into the swap with host key configurations.

Generating a ED25519 SSH key with OpenSSH
Isaac Bythewood Isaac Bythewood
2022-05-07

With the release of OpenSSH 8.7 the ssh-rsa signature scheme has been deprecated.

OpenSSH will disable the ssh-rsa signature scheme by default in the next release. In the SSH protocol, the "ssh-rsa" signature scheme uses the SHA-1 hash algorithm in conjunction with the RSA public key algorithm. It is now possible[1] to perform chosen-prefix attacks against the SHA-1 algorithm for less than USD$50K.

You can read more about that on their release notes.

That means we should probably generate new keys as soon as possible using the suggested ED25519. To do that is as simple as running:

While you get all your services updated with your new key you can still use your old key temporarily by adding an extra line to your ~/.ssh/config file.

If you have a lot of services that share SSH keys consider swapping out your most important ones first and then adding some extra lines to your ~/.ssh/config file to use different keys for different hosts.

To my understanding, if you follow security best practices and don't have port 22 open to the entire web on your servers then this deprecation isn't of immediate concern.


Some posts in similar tags to this one.

Minimal automated updates for Alpine Linux
Minimal automated updates for Alpine Linux
Many Linux distros have a way to configure automated updates but somewhat surprisingly Alpine Linux does not.
Isaac Bythewood Isaac Bythewood
2022-07-16
Capturing screenshots with Chromium using Python
Capturing screenshots with Chromium using Python
Sometimes you need to take screenshots of the web and Chromium provides an easy way to do that.
Isaac Bythewood Isaac Bythewood
2022-08-06
Code formatting a Python project in 2022
Code formatting a Python project in 2022
For those who want a quick solution without reading all of PEP 8. The Black Python module has a fully automated solution for you.
Isaac Bythewood Isaac Bythewood
2022-07-30