I don’t like my ssh keys being stored in plain sight, I also don’t like having to type a passphrase to use them.
On windows, once you run ssh-add, the key is stored in a secure way and managed by some kind of session manager (source), at that point you can delete the key file and go about your life knowing that the key is safe and you won’t need to type a password again.
I would like something similar on linux, like storing the key via libsecret as you do with git, so that you can access your servers without having a key in plain text.
I think it’s possible to generate a key with a passphrase and have gnome-keyring or kwallet remember the passphrase, but it would be nicer to just securely store the key itself.
Can that be done?
the threat model is exactly the same for those two scenarios, bear with it and focus on something else :)
The basic concept is the same. The URL you provide is specifically for Windows.
Check the Arch wiki on SSH keys to achieve what you want. It applies to other Linux distros
I use keychain.
What about a hardware key? Like nitrokey or yubikey?
I store my keys via KeepassXC. They got a Freedesktop.org secret service and key-agent integration
Your ssh private keys are safe, assuming nobody has physical access to your home directory. You can configure them to not require a password.
If someone has physical access to your computer then they could become compromised. If you are worried about that you could encrypt the whole drive.
It’s not a solution.
Example: there’s another user with sudo access, he has access to my home folder, encrypting the drive doesn’t solve anything. Or maybe you just are not the system administrator.
It’s not my usecase, but it’s definitely a reasonable situation.
You can encrypt your /home separate with another password.
Anyone with sudo access can keylog your password