where the flamingcow roams

SSH agent forwarding & screen

ssh-agent forwarding and screen not playing nicely is one of those things that I’ve dealt with so long that it just became routine. Resume a screen from a previous connection? Outgoing SSH won’t work, and that’s just the way it is. One day this week, I finally decided to see if I can fix it, and fortunately the Internet provides. That doc has a bunch of complexity about X forwarding, which I haven’t cared about in years, so here’s the distilled version. You’ll need to have already set up agent forwarding. On the host with your screen session:

tee ~/.ssh/rc <<'END'
if test "$SSH_AUTH_SOCK"; then
  ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock
fi
END

tee -a ~/.screenrc <<END
setenv SSH_AUTH_SOCK $HOME/.ssh/ssh_auth_sock
END

Reconnect, restart screen once, never worry about it again. Changing my life.