aboutsummaryrefslogtreecommitdiff
path: root/bash/10-ssh-agent.bash
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2022-12-02 00:29:52 +0100
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2022-12-02 00:29:52 +0100
commit80adf828d041fd30c2bfb584b2a1b12c53ad1a5a (patch)
treea9575dde9bfd14e0a0460681b5ce9f4290b13378 /bash/10-ssh-agent.bash
parent57e29729801bf452f9b8b4de5966a39f59ad3f9f (diff)
downloaddotfiles-80adf828d041fd30c2bfb584b2a1b12c53ad1a5a.tar.gz
bash
Diffstat (limited to 'bash/10-ssh-agent.bash')
-rw-r--r--bash/10-ssh-agent.bash30
1 files changed, 30 insertions, 0 deletions
diff --git a/bash/10-ssh-agent.bash b/bash/10-ssh-agent.bash
new file mode 100644
index 0000000..401564b
--- /dev/null
+++ b/bash/10-ssh-agent.bash
@@ -0,0 +1,30 @@
+# vi: ft=sh
+
+#SA_SSH_AGENT_STATIC='no'
+#SA_SSH_SOCKET="/var/run/user/$UID/ssh-agent.sock"
+#SA_SSH_PIDFILE="/var/run/user/$UID/ssh-agent.pid"
+
+# For use with graphical logins when DEs don't provide an agent
+# Flatpak versions of KeePassXC don't allow file access to /var/run. Allow with:
+# $ flatpak override org.keepassxc.KeePassXC --user --filesystem=/run/user/$UID/ssh-agent.sock
+# Caution: /var/run symlinks to /run. Flatpak for some reason does not resolve symlinks.
+
+if [ "$SA_SSH_AGENT_STATIC" = "yes" ]; then
+ AGENT_PID=''
+ if [ -e "$SA_SSH_PIDFILE" ]; then
+ AGENT_PID=$(cat $SA_SSH_PIDFILE)
+ fi
+
+ if [ -z "$AGENT_PID" ] || ! kill -s 0 $AGENT_PID > /dev/null 2>&1; then
+ echo "Agent not running. creating one."
+ eval $(ssh-agent -s -a $SA_SSH_SOCKET)
+
+ echo "PID: $SSH_AGENT_PID"
+ echo "$SSH_AGENT_PID" > "$SA_SSH_PIDFILE"
+ else
+ echo "Using existing Agent"
+ export SSH_AUTH_SOCK="$SA_SSH_SOCKET"
+ fi
+fi
+
+unset AGENT_PID