1.4 KiB
Executable file
1.4 KiB
Executable file
SSH agent in WSL
There are a plenty of ways to enable the SSH agent in WSL to avoid the password ask at every connect to a remote host.
One of them is the following.
Add these lines to the ~/.profile file
ssh_pid=$(pidof ssh-agent)
# If the agent is not running, start it, and save the environment to a file
if [ "$ssh_pid" = "" ]; then
ssh_env="$(ssh-agent -s)"
echo "$ssh_env" | head -n 2 | tee ~/.ssh_agent_env > /dev/null
init=1
fi
# Load the environment from the file
if [ -f ~/.ssh_agent_env ]; then
eval "$(cat ~/.ssh_agent_env)"
fi
After every start of WSL, add the key to the SSH agent and unlock it with the password. For example when starting the day, after WSL start
ssh-add ~/.ssh/id_ed25519
Forward agent
Usualy a good idea to forward the agent. With this if using a jump host, you do not need to reenter the password if connect from a host to another host. Add this or create the ~/.ssh/config
file
Host *
ServerAliveInterval 15
ForwardAgent yes
ServerAlive useful, if the underlying connection closes the TCP sockets, E.G. Cisco EPC3925 or NATted cellular networks. This option sends dummy packet every 15 secs to keep the connection up.
todo
- Add the ability to ask the key password on login
- Store the SSH key between restarts (probably requires external packages)