DEV Community

Josue
Josue

Posted on • Originally published at whataboutopensource.blogspot.com on

KDE Plasma & ssh keys

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)"

Enter fullscreen mode Exit fullscreen mode

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...

Enter fullscreen mode Exit fullscreen mode

Don't forget to mark the scripts as executables:

chmod u+x file/to/mark/as/executable

Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
magnusisu profile image
Magnus Anderson

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.

Collapse
 
frzb profile image
Gunter Miegel

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" ]

Collapse
 
manekenpix profile image
Josue

Fixed. Thanks @frzb !

Collapse
 
jasondmoss profile image
Jason D. Moss

This worked perfectly. Thank you :)