The -o flag saves the private key in the OpenSSH format rather than saving in the PEM format.
The -a <number> is the number of Key Derivative Function rounds used to verify the passphrase. The higher it is, the slow authentication will be, also taking longer making brute force attacks harder (if the private key is ever stolen).
-t <type> is the type of the key we want to create. In our case it is ed25519.
-f <file_path> is basically where to save our public-private key pair.
It is always good to use -C <comment> to have username@hostname so that we know where this particular key was generated. I'd also recommend adding the date to it 👍
🔦 The Gotcha
Although Ed25519 SSH keys are much faster & smaller in size, there are a good number of servers out there which are still relying on RSA (of really long lengths) due to compatibility with servers running old versions of OpenSSH, or lacking the hardware to cryptographically work with Ed25519 keys.