Thursday, January 2, 2020

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

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, add all the keys, and stop it on shutdown. 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

[ -n "$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...


And finally, let's add a script to stop our ssh-agent at shutdown.

Folder: ~/config/plasma-workspace/shutdown

Our script will be ssh-agent-shutdown.sh.

#!/bin/bash

[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)"


Don't forget to mark the scripts as executables:

chmod +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 authorization.

Share:

0 comments:

Post a Comment