Skip to content

Commit a1639e0

Browse files
committed
Fix ssh agent forwarding
1 parent ac4fa2a commit a1639e0

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

.bashrc

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -125,34 +125,33 @@ if ! [ -v XDG_RUNTIME_DIR ]; then
125125
fi
126126
fi
127127

128-
# setup ssh-agent
129-
# only setup ssh agent if not previosly set
130-
if [ -v SSH_AUTH_SOCK ]; then
131-
if [ -S "$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh" ]; then
132-
SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh
133-
export SSH_AUTH_SOCK
134-
fi
128+
# setup ssh socket
129+
if $WSL; then
130+
# forward ssh socket to Windows
131+
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/ssh.sock"
135132
else
136-
SSH_DIR=$XDG_RUNTIME_DIR/gnupg
137-
if ! [ -d "$SSH_DIR" ]; then
138-
mkdir -p "$SSH_DIR"
139-
chmod 700 "$SSH_DIR"
140-
fi
141-
SSH_AUTH_SOCK="$SSH_DIR"/ssh.sock
142-
if [ -S "$SSH_AUTH_SOCK" ]; then
143-
export SSH_AUTH_SOCK
144-
if [ -f "$HOME/.ssh/ssh_pid" ]; then
145-
SSH_AGENT_PID="`cat "$HOME"/.ssh/ssh_pid`"
146-
export SSH_AGENT_PID
147-
fi
148-
else
149-
eval "`ssh-agent -s -a "$SSH_AUTH_SOCK"`" > /dev/null
150-
if ! [ -d "$HOME"/.ssh ]; then
151-
mkdir -p "$HOME/.ssh"
152-
chmod 700 "$HOME/.ssh"
133+
if [ -S "$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh" ]; then
134+
# forward ssh socket to gpg
135+
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
136+
elif ! [ -v SSH_AUTH_SOCK ]; then
137+
PID_FILE="$HOME/.ssh/ssh_pid"
138+
SSH_AUTH_SOCK="$HOME/.ssh/ssh.sock"
139+
if [ -S "$SSH_AUTH_SOCK" ]; then
140+
# use existing ssh-agent
141+
export SSH_AUTH_SOCK
142+
if [ -f "$PID_FILE" ]; then
143+
SSH_AGENT_PID="`cat "$PID_FILE"`"
144+
export SSH_AGENT_PID
145+
fi
146+
else
147+
# start a new ssh-agent
148+
if ! [ -d "$HOME"/.ssh ]; then
149+
mkdir -p "$HOME/.ssh"
150+
chmod 700 "$HOME/.ssh"
151+
fi
152+
eval "`ssh-agent -s -a "$SSH_AUTH_SOCK"`" > /dev/null
153+
echo "$SSH_AGENT_PID" > "$PID_FILE"
153154
fi
154-
echo "$SSH_AGENT_PID" > "$HOME/.ssh/ssh_pid"
155155
fi
156156
fi
157157

158-
# export SYSTEMD_LESS=FRSMK

0 commit comments

Comments
 (0)