System SSH
One alias from your ~/.ssh/config.
OpenSSH does the rest — user, key, ProxyCommand, jump hosts — exactly as on the command line.
v1.0.0: the first stable release — macOS, Linux and Windows
Every machine you look after, in one window — plain SSH, your ~/.ssh/config, and EC2 instances behind AWS Session Manager with no open port and no public IP.
Free · v1.0.0 · macOS universal, Linux x86_64 and ARM64, Windows x64 (preview).
Watch the 2-minute tour
The tour
From a new workspace to a shell on an instance in a private subnet — the whole path, start to finish.
Plays from YouTube once you press play — or watch it there.
Four ways in
Each connection records exactly how to reach its machine, so you never assemble the command again.
One alias from your ~/.ssh/config.
OpenSSH does the rest — user, key, ProxyCommand, jump hosts — exactly as on the command line.
Host, user and credentials.
The SSH client is compiled in. Agent, key file or a saved password; host keys always checked.
An instance id, a profile, a region.
Session Manager reaches instances with no open port and no public IP. You land as ssm-user.
Session Manager, then real SSH inside it.
The private-subnet tunnel, your own user, and file transfer — all through the same connection.
Setting up
Describe the machine once — mssh remembers how to reach it. Paste an ssh command and it fills the form in for you.
A name, a colour, and the AWS profile and region its SSM machines inherit. Use the AWS CLI's own configuration, or keep a key pair here.

Pick how to reach it, then fill in only what that way needs. Here: SSH over SSM, by instance id, as ec2-user with a key file — profile and region inherited.

Workspaces
Group machines with a colour and their own AWS profile and region. The home page picks up where you left off, and the sidebar shows which machines have a session open.

Files · ⌘E
Browse, download and upload over SFTP on the terminal’s own SSH connection — no second login, no second tunnel, and it works through Session Manager too. Every transfer writes to a hidden file and takes its real name only when complete, so a cancelled upload never leaves half a file behind.

History
Every session is recorded with its machine, workspace, AWS profile and how it ended. Filter by workspace, machine and time, and export CSV or JSON. The record stays when a machine is renamed or deleted — and it stays on your computer.

⌘P
A command palette for your whole fleet. Type a few letters, press return, and you are on the machine — with its last session still there if it is open.

Appearance
GitHub, iTerm2, VS Code, Dracula, Nord, Solarized, Gruvbox and Tokyo Night — or Auto, which follows macOS between light and dark. Font, size, line height and cursor apply to live sessions, without reconnecting.



The details
Several terminals per machine. Switch pages and come back to the same scrollback, the same directory, the same running top.
A full pty with xterm-256color: vim, htop and colours work, and the remote shell follows the window as you resize it.
⌘F (Ctrl+Shift+F on Linux and Windows) finds text anywhere in a session, every match highlighted, with a running count.
The first time, mssh shows the fingerprint and asks — even through an SSM tunnel. A key that changed is refused, never offered.
When sshd’s MaxStartups turns a login away before it authenticates, mssh tries again on its own — over SSM too.
Use the AWS CLI’s own profiles and SSO, or keep a key pair on a workspace — imported from your shell in one click.
mssh has no servers of its own. It talks to your machines and to AWS, and to nothing else.
Download · v1.0.0
Pick the file for your system. Every build, including earlier ones, is on the GitHub releases page.
Or clear the quarantine flag from a terminal instead:
xattr -dr com.apple.quarantine /Applications/mssh.app
brew install awscli brew install --cask session-manager-plugin
sudo apt install ./mssh_1.0.0_amd64.deb sudo dnf install ./mssh-1.0.0-1.x86_64.rpm sudo zypper install --allow-unsigned-rpm ./mssh-1.0.0-1.x86_64.rpm
chmod +x mssh-1.0.0-x86_64.AppImage ./mssh-1.0.0-x86_64.AppImage
C:\Program Files\HaNo\mssh, adds mssh to the Start menu and the desktop, and installs Microsoft’s WebView2 runtime if the machine does not have it yet (Windows 11 does).Or unzip the portable mssh.exe anywhere and run it — nothing installed, but WebView2 must already be present.
winget install Amazon.AWSCLI
%AppData%\mssh\mssh.db, so installing again picks up where you left off. Shortcuts take Shift, as on Linux — Ctrl+Shift+T, Ctrl+Shift+P.FAQ
Yes. There is no account, no subscription and no telemetry. Download the app from the GitHub releases page.
Through AWS Systems Manager Session Manager, the same way `aws ssm start-session` does. The instance needs the SSM Agent and an IAM role with AmazonSSMManagedInstanceCore; your computer needs the AWS CLI and the Session Manager plugin. With SSH over SSM, mssh then runs a real SSH handshake through that tunnel, so you log in as your own user and can transfer files.
In a local SQLite database on your computer, readable by you alone (0600 in a 0700 directory). Nothing is synced or sent anywhere. AWS credentials stay with the AWS CLI unless you choose to keep a key pair on a workspace, and even then they are handed to the AWS CLI through its environment, never its command line.
The app is not yet signed with an Apple Developer ID, so Gatekeeper cannot vouch for it and blocks it the first time. Close the warning with Done, then open System Settings → Privacy & Security, scroll to Security and click Open Anyway next to mssh, and confirm with your password. You only have to do this once. Alternatively, run `xattr -dr com.apple.quarantine /Applications/mssh.app` in a terminal.
Linux, yes — since version 0.9.0. There is a .deb for Ubuntu, Debian and Mint, an .rpm for Fedora and openSUSE, both for x86_64 and ARM64, and an x86_64 AppImage for any other distribution. It needs glibc 2.34 or newer (Ubuntu 22.04, Debian 12 and later). Windows arrived in 0.10.0 as a preview: an x64 installer and a portable zip. Every connection kind is tested by CI on Windows, but it has not been used much by hand yet, and the Files drawer is not available on System SSH connections there. It needs Windows 10 version 1809 or newer, or Windows 11, on x64.
Download the new release and install it over the previous one. Connections, passwords, settings and session history stay where they were, and the database is upgraded in place from any earlier release. There are no automatic updates yet — watch the GitHub releases to hear about new versions.
Neither the installer nor the portable mssh.exe is signed with a code signing certificate, so SmartScreen shows “Windows protected your PC”. Choose More info, then Run anyway — you only have to do this once. Your browser may also ask whether to keep the download, for the same reason.
Yes. The System SSH kind takes a Host alias and nothing else: OpenSSH supplies the user, the key, ProxyCommand, jump hosts and host-key checking, exactly as on the command line.
mssh is free and always will be — no account, no subscription. If it saves you time and you would like to say thanks, a donation helps keep it going. It is entirely optional.
Scan the code with any Vietnamese banking app (VietQR / Napas 247), or transfer to:

Free, local, and built for the machines that are hardest to reach.
Download mssh 1.0.0