Better version ssh-agent for WSL

This commit is contained in:
lachtan
2025-09-19 05:59:07 +02:00
parent 138d76a19f
commit 3049391a4f

View File

@@ -1,20 +1,40 @@
# Start ssh agent for private key
function _log() {
xlog "[ssh-agent] $*"
}
_SSH_AGENT_NO_KEYS=1
_SSH_AGENT_NOT_RUNNING=2
for key in id_ecdsa id_rsa; do
key_filename="$HOME/.ssh/$key"
if [ -f "$key_filename" ]; then
_log "SSH key: $key_filename"
if is_wsl; then
_log "WSL ON"
if [ -z "$SSH_AUTH_SOCK" ]; then
export SSH_AUTH_SOCK=$HOME/.ssh/ssh-agent.sock
fi
if [ ! -S "$SSH_AUTH_SOCK" ]; then
_log "SSH_AUTH_SOCK: $SSH_AUTH_SOCK"
ssh-add -L &> /dev/null
ssh_add_status=$?
if [[ ! -S "$SSH_AUTH_SOCK" || $ssh_add_status -eq $_SSH_AGENT_NOT_RUNNING ]]; then
_log "Starting ssh-agent"
eval "$(ssh-agent -s -a "$SSH_AUTH_SOCK")"
fi
if ! ssh-add -L > /dev/null; then
ssh-add -L &> /dev/null
ssh_add_status=$?
if [[ $ssh_add_status -eq $_SSH_AGENT_NO_KEYS ]]; then
_log "Adding SSH key to agent"
ssh-add "$key_filename"
fi
else