Docker Desktop, Alpine Linux, WSL, SSH
Keychain: Manage SSH Agent Sessions in Alpine Linux
Or: How to remove endless number of sessions
Note: if you want to know how to create your own SSH keys, visit Github to read Generating a new SSH key and adding it to the ssh-agent, and Testing your SSH connection.
Which means my current
.bashrc is adding my SSH private keys to my SSH agent. It works well, here is my current
However, if I open a second terminal session, here is what I get:
Notice the first line? In the first picture I shared, my terminal session into Alpine says
Agent pid 58. In the second session I opened (above), the output says
Agent pid 97. Why? Because a new ssh-agent session is being created every time I instantiate a new session into Alpine.
While this still works, it’s not very tidy.
Keychain is a special bash script designed to make key-based authentication incredibly convenient and flexible […] The keychain act as a manager for ssh-agent, typically run from ~/.bash_profile. It allows your shells and cron jobs to share a single ssh-agent process.
To install in Alpine Linux, just run
sudo apk add keychain.
You can see in the Alpine Linux package repository that the package is available and up to date:
Update the bash init script
.bashrc script is updated as follows:
Notice that I’ve commented out the line to automatically start the SSH agent, and replaced it with the
keychain command below. Following the
keychain command is a newline-delimited list of keys that I want to add to the SSH agent.
Lastly, I use the
source command to initiate the bash script created when I installed the
Now when I open to sessions into the WSL Alpine Linux, I am greeted by a message from keychain stating that the same session is being used. You can see this in the line
Found existing ssh-agent: 122.
If you want to verify which keys are currently added, you can still run
That will clean up the endless clutter of SSH agent sessions chilling in your operating system’s background.