DEV Community

Cover image for SSH Switch: A Lightweight Open-Source SSH Key Manager
Rohan Parmar
Rohan Parmar

Posted on

SSH Switch: A Lightweight Open-Source SSH Key Manager

Every developer eventually faces the same challenge.

You might have a personal GitHub account, a work GitHub account, a few client projects, and several servers. Each one uses a different SSH key.

At first, it seems manageable.

Then one day, you push code using the wrong account.

Or GitHub suddenly rejects authentication because the wrong key is loaded.

Or you spend ten minutes trying to remember which SSH config entry belongs to which project.

I've encountered this more times than I’d like to admit.

After repeating the same manual steps over and over, I decided to create a small tool to simplify the process.

That’s how SSH Switch was developed.

The Problem

Managing multiple SSH identities isn’t difficult.

It’s annoying.

Most developers deal with it using a mix of:

  • ~/.ssh/config

    I Got Tired of Managing Multiple SSH Keys, So I Built SSH Switch

  • ssh-add

  • Manual key generation

  • Terminal commands, they often forget

The workflow usually looks like this:

ssh-add ~/.ssh/work_key
ssh-add ~/.ssh/personal_key

ssh -T git@github.com
Enter fullscreen mode Exit fullscreen mode

Or even worse:

nano ~/.ssh/config
Enter fullscreen mode Exit fullscreen mode

Each time I switched contexts, I found myself opening terminal windows and editing configuration files.

The process works.

It’s just not pleasant.

What I Wanted

I wasn’t trying to reinvent SSH.

I wanted a tool that could:

  • Generate SSH keys
  • Hold multiple SSH identities
  • Switch between them easily
  • Work on different platforms
  • Offer a clean interface instead of terminal commands

Most importantly, I wanted something I would actually enjoy using.

Building SSH Switch

For the frontend, I chose React and TypeScript.

For the desktop application, I used Tauri.

For the backend, I relied on Rust.

This combination gave me several advantages:

  • Small application size
  • Native performance
  • Low memory use
  • Secure access to filesystem operations

Tauri was a great choice because SSH management requires interacting with files on the user’s machine, and Rust offers a safe way to handle those operations.

Features

SSH Switch provides everything needed to manage multiple SSH identities from a single interface:

  • Generate new SSH keys (Ed25519/RSA)
  • Import existing SSH keys
  • Manage multiple SSH identities in one place
  • Switch active SSH keys with a single click
  • View and organize all configured keys
  • Copy public keys instantly
  • Delete unused SSH keys safely
  • Modern desktop UI built with Tauri, React, and Rust
  • Lightweight and fast with minimal resource usage
  • Mac & Linux Support
  • Open source and community-driven

Why Open Source?

I believe developer tools improve when developers can inspect, question, and contribute to them.

SSH is part of our daily workflow.

Making the code public allows others to:

  • Review implementation details
  • Suggest improvements
  • Report issues
  • Contribute new features

Open source also helps confirm whether the problem is worth solving.

If other developers find the tool useful, that’s a strong sign that the issue is real.

Try It Out

SSH Switch is completely open source.

GitHub Repository:

https://github.com/therohanparmar/ssh-switch

I welcome your feedback, issues, and contributions.

Top comments (0)