User Tools

Site Tools


windows:wsl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
windows:wsl [2019-08-10 18:54] – rewrote intro, changed title gabrielwindows:wsl [2019-08-18 22:20] (current) – [Using ssh-agent with multiple shell sessions] link to GitLab gabriel
Line 20: Line 20:
 set bell-style none set bell-style none
 set bell-style visible set bell-style visible
 +</code>
 +
 +===== Using ssh-agent with multiple shell sessions =====
 +
 +//These scripts are now maintained [[https://gitlab.com/unxis/unxtools/tree/master/wsl/ssh-agent|here in GitLab]].//
 +
 +WSL doesn't run a full Linux system, rather it acts as an translation layer that can emulate the software
 +interface required to run native Linux applications in the Windows kernel.  Among the implications of this
 +implementation is the fact that there is no good way start an ssh-agent session that is automatically shared
 +all shell sessions in the same manner as a native Linux desktop.
 +
 +These hacks allow successive shells to attach to the ssh-agent socket started by your first session.
 +
 +These commands should be inserted in ''~/.bashrc'':
 +
 +<code>
 +# start ssh-agent for WSL
 +SSHAGENTINFO=/tmp/${USER}-ssh-agent/conf
 +if [ -f $SSHAGENTINFO ]; then
 +  printf "Reading ssh-agent socket info from %s.\n" $SSHAGENTINFO
 +  source $SSHAGENTINFO
 +else
 +  (umask 0077 ; mkdir -p `dirname $SSHAGENTINFO`; ssh-agent > $SSHAGENTINFO)
 +  source $SSHAGENTINFO
 +fi
 +</code>
 +
 +To make sure that the session gets cleaned up, insert this in ''~/.bash_logout'':
 +
 +<code>
 +# shut down our ssh-agent when we close the final shell
 +SHELLPIDS=$( pgrep bash )
 +SHELLCOUNT=$( echo $SHELLPIDS | wc -w )
 +if [[ $SHELLCOUNT -eq 1 ]]; then
 +  ssh-agent -k && rm -f /tmp/${USER}-ssh-agent/conf
 +fi
 </code> </code>
windows/wsl.1565477688.txt.gz · Last modified: 2019-08-10 18:54 by gabriel