Open-source project
muriloventuroso/easyssh avatar
muriloventuroso/easyssh

EasySSH: a GTK connection manager for SSH hosts on elementary OS

The SSH connection manager to make your life easier.

555 stars37 forksValaGPL-3.0

At a glance

What is it?
EasySSH is a Vala and GTK application that stores SSH connections and groups them, opens them in a configurable terminal, and syncs with your own ssh config. It is a desktop client rather than a library, and the repository is openly looking for maintainers.
Who is it for?
Adopt EasySSH if you want a graphical way to keep SSH hosts and groups, you run an elementary OS style GTK desktop, and you would rather not type a config file for every box you connect to. Do not adopt it for a server or a minimal system, since it is a GTK application with a heavy dependency set, and note that the last tagged release is 1.7.9 from December 2021 while the last push was on 2026-10-01.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Vala, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A connection manager rather than a terminal

EasySSH is described as the SSH connection manager to make your life easier, and the project asks for maintainers in a heading near the top of the README, which tells you a lot about its state. A complete, efficient and easy-to-use manager. Create and edit connections, groups, customize the terminal, with multiple instances of the same connection.

The feature list is short and every item is about the desktop experience rather than about SSH itself. Manage connections and groups. Customize terminal. Dark Theme. Multiple instances of same connection. Restore opened hosts. Sync ~/.ssh/config. Protect data with password.

The last of those is the one with design weight. The connection data can be encrypted with a password, which is the reason this is a desktop application rather than a script. An SSH client that stores hostnames and usernames in a plain file is a small risk, and one that stores them encrypted behind a password is a smaller one.

The application is written in Vala with a GTK interface, the primary language recorded for the repository, and the topic tags name elementaryos, gtk and appcenter alongside ssh and ssh-client. The licence is GPL-3.0, the default branch is master, and the last push was on 2026-10-01. The most recent tagged releases are 1.7.9 from December 2021, 1.7.8 from December 2021 and 1.7.7 from November 2021, so the release history has been quiet for a while while the branch still receives work.

What sync with ssh config actually means

The sync feature is the one that determines whether EasySSH fits into an existing setup or fights it.

If you already maintain an ~/.ssh/config, that file is the natural place for your hosts, and it is the format that other tools read. A connection manager that keeps its own separate list becomes a second source of truth, and the two drift apart. Syncing means the application and the file agree.

Restore opened hosts is the related convenience. It is the behaviour people miss when they move from a terminal to a graphical client: the set of machines you were working on is a working session, not a static list, and having them reappear when you reopen the application is the difference between a client that helps and one that makes you click through a tree every morning.

Multiple instances of the same connection is a smaller version of the same idea. Sometimes you have three open sessions to the same host, in different terminals, for different reasons, and a client that only allows one connection per host forces you to work around it.

None of these features touch the SSH protocol. The protocol handling is what OpenSSH already does well, and EasySSH is a layer that manages which host you are connecting to and in what terminal it opens.

Building it needs a specific set of GTK development packages

The Developing and Building section lists the dependencies, and they describe the stack precisely.

You need libgee-0.8-dev, libgtk-3-dev, libgranite-dev at version 6.0.0 or newer, libvte-2.91-dev and libjson-glib-dev, plus meson, valac and gpg. The gpg dependency is there because the application signs its own data, which follows from the password protected data feature.

The build itself is meson and ninja, and the README gives the three commands:

meson build --prefix=/usr cd build ninja test

To install, you use ninja install, then execute with com.github.muriloventuroso.easyssh:

sudo ninja install com.github.muriloventuroso.easyssh

So the application id doubles as the command you run, which is the standard flatpak style naming and is also what the AppCenter badge points at.

The dependency set is a real consideration if you are not on an elementary-derived system. libgranite in particular is an elementary OS component library, and while the application is a plain GTK 3 program, requiring granite at version 6 or newer narrows where it builds comfortably. The repository layout backs that up, with a debian/ directory for Debian packaging, a snapcraft.yaml for a snap, a Flatpak manifest at com.github.muriloventuroso.easyssh.yml, a po/ directory for translations, and meson/ for the build configuration.

The Flatpak route is the shortest install

There is a section on installing with Flatpak, and it is two commands and a run command.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub com.github.muriloventuroso.easyssh

Then you run:

flatpak run com.github.muriloventuroso.easyssh

The remote-add step with the --if-not-exists flag is what makes it safe to run twice, which matters for a copy-and-paste instruction that most people will run on a machine that already has flathub configured.

There is also an AppCenter badge, and the elementary App Center is where this kind of application is normally discovered and installed on that distribution. The translation status badge points at Weblate, and the po/ directory in the repository is the gettext catalogue, so the app is translated through the usual crowd-sourcing pipeline rather than by hand.

For a user, the choice is between the Flatpak, which needs nothing from the system beyond flatpak itself, and the native build, which needs the development packages. The Flatpak is the more interesting option for a project that is not archived, since the runtime carries the dependencies and the app inside does not need to be rebuilt when the underlying GTK stack moves.

A maintainer-request project, and what that means in practice

The README asks for maintainers, and that request is a reasonable signal to weigh when you are deciding whether to depend on the project.

What an unmaintained desktop application means in practice is different from what an unmaintained library means. A library that stops being maintained breaks when its users upgrade past it. A desktop application that stops being released simply stays at whatever version it was, and it keeps working with the systems it was built for, because it is a self-contained binary or a Flatpak with a pinned runtime.

The dates here are the relevant fact. The last three tags are all from November and December 2021, and the last push was on 2026-10-01. So the branch is still receiving commits, but nothing has been cut as a release in several years. If you are using the Flatpak, you are running a 2021 build unless a new one has been published to flathub, and the AppCenter badge points at a distribution channel that has its own lifecycle.

The project also has a single credited contributor in the thanks section, Ryo Nakano, and donation links through PayPal and Patreon, which is the usual arrangement for a one-person desktop application.

So the reasonable position is that EasySSH is a working piece of software that you can install and use today, with the risk that a future elementary OS release or a dependency update will eventually stop it building, rather than the risk that it will break under you.

Editorial conclusion

Adopt EasySSH if you want a graphical way to keep SSH hosts and groups, you run an elementary OS style GTK desktop, and you would rather not type a config file for every box you connect to. Do not adopt it for a server or a minimal system, since it is a GTK application with a heavy dependency set, and note that the last tagged release is 1.7.9 from December 2021 while the last push was on 2026-10-01. Before you install, decide whether you want the Flatpak or the native build, and if you build it yourself, install the listed development packages including libgranite-dev at version 6.0.0 or newer and valac.

Frequently asked questions

What does EasySSH do?

It is an SSH connection manager for the desktop that lets you create and edit connections and groups, customise the terminal, open multiple instances of the same connection, restore previously opened hosts, sync with your ~/.ssh/config, and protect the stored data with a password.

How do I install EasySSH?

With Flatpak, add the flathub remote with `flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo`, install with `flatpak install flathub com.github.muriloventuroso.easyssh`, and run it with `flatpak run com.github.muriloventuroso.easyssh`. It is also available through the elementary App Center.

What do I need to build EasySSH from source?

The development packages libgee-0.8-dev, libgtk-3-dev, libgranite-dev at 6.0.0 or newer, libvte-2.91-dev and libjson-glib-dev, plus meson, valac and gpg. Then run `meson build --prefix=/usr`, `cd build` and `ninja test`, and install with `sudo ninja install` before running com.github.muriloventuroso.easyssh.

Is EasySSH still maintained?

The README has a heading asking for maintainers, the most recent tagged releases are 1.7.9, 1.7.8 and 1.7.7 from November and December 2021, and the last push to the master branch was on 2026-10-01, so commits continue without new releases being cut.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. muriloventuroso/easyssh on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/muriloventuroso-easyssh.svg)](https://hysenlabs.com/projects/muriloventuroso-easyssh)

Was this useful?