Files
skel/dotfiles/ssh/rc
Claude 7444f5b97b Remove pointless exports from ssh/rc, add process-model comment
ssh/rc runs as a sshd child process so exports never reach the user's
shell. SSH_REMOTE_AUTH_SOCK was set and exported but never used (a
leftover from a prior failed fix attempt). SSH_AUTH_SOCK was reassigned
to the symlink path and exported, also to no effect. Remove both.

https://claude.ai/code/session_01RhXaFzxJA5D2BcGcz18ipA
2026-04-19 02:19:05 +00:00

33 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# Roughly based on this article:
# https://werat.github.io/2017/02/04/tmux-ssh-agent-forwarding.html
#
# NOTE: this file is executed by sshd as a child process, NOT sourced by the
# user's shell. Any variable assignments or exports here have no effect on the
# shell environment the user will land in.
REMOTE_LINK="${HOME}/.ssh/ssh_auth_sock"
if [ -S "${SSH_AUTH_SOCK}" ] ; then
# Always update the symlink to the latest session's socket.
# This ensures that tmux (which uses the static path) always points to a
# current agent.
mkdir -p "$(dirname "${REMOTE_LINK}")"
ln -sf "${SSH_AUTH_SOCK}" "${REMOTE_LINK}"
fi
# if stdin is a tty, don't do the cookie step
if [ ! -t 0 ] ; then
# Handle X forwarding, per sshd(8)
if read -r proto cookie && [ -n "$DISPLAY" ]; then
if [ "$(echo "$DISPLAY" | cut -c1-10)" = 'localhost:' ]; then
# X11UseLocalhost=yes
echo add "unix:$(echo "$DISPLAY" | cut -c11-)" "$proto" "$cookie"
else
# X11UseLocalhost=no
echo add "$DISPLAY $proto $cookie"
fi | xauth -q -
fi
fi