I had this working once before, but for some reason it's not working on my new system.
in .kde4/Autostart/
I have a symlink to ssh-agent called 01-sshagent
and then a simple script called 02-sshkeys
that looks like this:
/usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')
The problem seems to be that when I startup, ssh-agent is run alright, but KDE doesn't hold onto the output and store it in the environment, so for every Konsole session, I have to run ps
to find the PID and then manually type:
SSH_AUTH_SOCK=/tmp/ssh-YtvdiEtW3065/agent.3065; export SSH_AUTH_SOCK;
SSH_AGENT_PID=<pidnumber>; export SSH_AGENT_PID;
...just to get it to work, and it does... just in that Konsole window.
I've tried removing the aforementioned symlink and just havining the ssh script look like this:
/usr/bin/ssh-agent | sh
/usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')
But still, the agent variables aren't in the session and I'm never prompted for the password to my keys.
I'm obviously missing something, but what is it?
This is an old question, and probably deserves an updated answer. The following works for me (Fedora 31 / KDE).
kdewallet
) and with the same password as your login password. Ensure it unlocks on login. Arch Wiki has some info on that; in my case I had to uncomment some lines in/etc/pam.d/sddm
.ssh-keygen
) with whatever password you like (since you're going to use a password manager, it doesn't need to be memorable).ssh-add
andksshaskpass
are installed.chmod +x
and run it once. Ksshaskpass should ask your SSH password. Tell it to remember the password (this uses KWallet). Run again and notice this time it doesn't ask.That should be it.
My simple solution is to just run one ssh-agent and always keep it running. You can kill it on log-out if you really want to. The key is to just use a fixed socket. Add ssh-agent -a /tmp/$USER.agent to an Autostart script. Then do "export SSH_AUTH_SOCK=/tmp/$USER.agent" followed by ssh-add. Also, you can add that export to your .bashrc, .profile or other shell log-in script and always have access to the agent even when using a remote ssh in.
According to my observations quote "for some reason it's not working on my new system" stands:
This happens with my favorite shell during aforementioned upgrade at least twice. Any other shells works fine. This problem has too scant internet coverage, because of tcsh low popularity. So, one of decisions is migrate to zsh. I do it
I dug deeper and found evident cause of error. ssh-agent started by command
in file /usr/share/upstart/sessions/ssh-agent.conf by upstart. First, command ssh-agent executad as is and produces output similar to:
Second, this output executed by eval and in case of csh we can see:
in ~/.cache/upstart/ssh-agent.log. This error is due "SHELL looks like csh style" (see ssh-agent(1)).
So, short and exhaustive answer is:
append -s option to ssh-agent invocation command (/usr/share/upstart/sessions/ssh-agent.conf):
eval $(ssh-agent -s)
or do not use csh
I am not a fan of updating the KDE startup process. I do the following:
mkdir ~/.bashrc.d
Then at the bottom of
.bashrc
Then each time I reboot, I run this in a terminal:
Every time you open a new shell, the contents of
.bashrc.d/ssh-agent
get imported into the shell environment. This is a nice way to inject envronment variables into all your shells.This is an older question, but I still ended up here looking for a solution.
One of the issues in my distro at least is that if you are using GDM, which is Gnome's Display Manager it doesn't care about KDE/Plasma at all and does nothing to make sure it is launched properly with all its configuration utilities.
What you have to do for GDM at least is make sure you include PAM related settings.
You can do this two ways. You can install both and look at each set of configuration files and compare what is missing, or you can just give what I say a try. Going with looking at the config files will probably be the best bet into the future if things change, but either way things should be similar.
For the first file you need to edit it is
/etc/pam.d/gdm-autologin
Inside this file you will need to add 1 line under
@include common-session
Add this line under the gnome key ring line.
The next file you need to edit is
/etc/pam.d/gdm-password
Inside this file you need to add 1 line under
@include common-auth
Add this line under the gnome key ring.so line.
That should take care of your login issues if you are using Plasma.
You could probably just include these things in some other way, but this is what worked for me on Ubuntu 22.04.
Hope this helps.