Improve SSH_AUTH_SOCK handling.

This commit is contained in:
David Tomaschik
2026-07-07 14:28:37 -07:00
parent 6caee04853
commit a390d0a4d4

View File

@@ -97,6 +97,8 @@ export LVM_SUPPRESS_FD_WARNINGS=1
export EARTHLY_SSH_AUTH_SOCK="" export EARTHLY_SSH_AUTH_SOCK=""
# Handle SSH_AUTH_SOCK for tmux consistency # Handle SSH_AUTH_SOCK for tmux consistency
case "$-" in
*i*)
_SSH_AUTH_LINK="${HOME}/.ssh/ssh_auth_sock" _SSH_AUTH_LINK="${HOME}/.ssh/ssh_auth_sock"
# Helper to check if a path is our link or points to it # Helper to check if a path is our link or points to it
@@ -115,10 +117,19 @@ _is_link_path() {
return 1 return 1
} }
# Helper to check if an SSH socket is valid and useful via ssh-add return codes # Helper to check if an SSH socket is valid and useful
_is_valid_ssh_sock() { _is_valid_ssh_sock() {
[ -z "$1" ] && return 1 [ -z "$1" ] && return 1
[ -S "$1" ] || return 1 [ -S "$1" ] || return 1
if command -v nc >/dev/null 2>&1; then
# Use nc to quickly check if the socket is listening.
# We use -N to shutdown the socket after EOF on stdin (for OpenBSD netcat compatibility).
if echo '' | nc -w 1 -N -U "$1" >/dev/null 2>&1; then
return 0
fi
fi
if command -v ssh-add >/dev/null 2>&1; then if command -v ssh-add >/dev/null 2>&1; then
SSH_AUTH_SOCK="$1" ssh-add -l >/dev/null 2>&1 SSH_AUTH_SOCK="$1" ssh-add -l >/dev/null 2>&1
case "$?" in case "$?" in
@@ -126,6 +137,10 @@ _is_valid_ssh_sock() {
*) return 1 ;; *) return 1 ;;
esac esac
fi fi
if command -v nc >/dev/null 2>&1; then
return 1
fi
return 0 return 0
} }
@@ -234,6 +249,8 @@ elif _is_valid_ssh_sock "${_SSH_AUTH_LINK}"; then
fi fi
unset _SSH_AUTH_LINK _CANDIDATE unset _SSH_AUTH_LINK _CANDIDATE
;;
esac
# Setup XDG-like dirs on MacOS # Setup XDG-like dirs on MacOS
# Based on https://leebyron.com/til/mac-xdg/ # Based on https://leebyron.com/til/mac-xdg/