If you're a Linux user, and the desktop environment of your choice is Gnome, you're probably used to letting Gnome Keyring SSH Agent handle your ssh keys. You just log in, your ssh keys stored in your ~/.ssh folder get loaded in memory, and then you can use them not only in terminals but with any process that requires ssh authentication.
Unfortunately, KDE Plasma doesn't have that feature out of the box, so it needs a bit of tweaking to get the same behaviour.
Let's make some changes to Kwallet and add some scripts to start our ssh-agent and load our keys:
Kwallet
Launch KDE Wallet Configuration and make sure the KDE wallet subsystem is enabled.
Launch Kwallet Manager and create a new wallet if necessary and set a passphrase for it.
Scripts
Now we need to create some scripts to start the ssh-agent on startup and add all the keys. For this, it's necessary to have the package ksshaskpass installed.
KDE has a designated folder for scripts that will be executed at login but before launching Plasma.
Folder: ~/.config/plasma-workspace/env
In this folder, we need to create a script to start the ssh-agent. Let's call it ssh-agent-startup.sh.
#!/bin/bash
[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)"
Also, KDE uses another folder for scripts at login.
Folder: ~/.config/autostart-scripts
Let's add a script to load all our ssh keys. We'll call our script ssh-add.sh.
#!/bin/bash
export SSH_ASKPASS=/usr/bin/ksshaskpass
ssh-add $HOME/.ssh/my_ssh_key1 $HOME/.ssh/my_ssh_key2 $HOME/.ssh/my_ssh_key3...
Don't forget to mark the scripts as executables:
chmod u+x file/to/mark/as/executable
And that's it. After rebooting, the system will prompt you to enter your keys' passphrases, and if everything went well, you should be able to use your keys with any process that needs ssh authentication.
Top comments (4)
Thanks for the guide!
Perhaps this is a thing with a newer version of bash?, but I had to remove the backslashes escaping underscores that you put in here.
Thank you for this wonderful guide,
At Folder:
~/config/plasma-workspace/shutdown
the leading.
of the hidden.config
is missing.The test
[]
missiing some whitespace after and before the braces they have to look like that:[ -n "$SSH\_AGENT\_PID" ]
[ -z "$SSH\_AGENT\_PID" ]
Fixed. Thanks @frzb !
This worked perfectly. Thank you :)