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?
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.
Unless some sandboxing or other explicit security measure is in place, any software you run typically has access to your entire home directory, including
.ssh/
. If any one of those was compromised somehow, they’ve got access to your SSH keys.That’s a gigantic attack surface if you ask me.
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