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.

When I open Windows Terminal into my Windows Subsystem for Linux (WSL) instance, I’m usually greeted by something like this:

Which means my current .bashrc is adding my SSH private keys to my SSH agent. It works well, here is my current .bashrc :

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.

Enter Keychain

From nixCraft:

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

My new .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 keychain package.

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 ssh-add -l.

That will clean up the endless clutter of SSH agent sessions chilling in your operating system’s background.




Organic, fair-sourced DevOps and Full-Stack things. This is a BYOB Establishment — Bring Your Own hipster Beard.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Hotpot Fund Weekly Report NO.17

WriteUp VulnHub : XSS_SQL

Revit 2018.2 Update Pushed Out

Employee Spotlight: Jennifer Strong

Salesforce, Online Forms, and Salesforce Integration

Deploying the JDA discord bot with Docker

Platforms for programmers to improve problem solving

Inserting a missing block in puzzle

KYVE Testnet

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Callback Insanity

Callback Insanity

Organic, fair-sourced DevOps and Full-Stack things. This is a BYOB Establishment — Bring Your Own hipster Beard.

More from Medium

Fixing some problems starting Minikube with VirtualBox on Mac

Setup Grafana on an Ubuntu EC2 Instance

Rancher Desktop for running Kubernetes & Container management on Desktop