SSH Pilot - Modern SSH session manager for Linux
Greetings!

In this note, I will tell you about SSH Pilot - a modern SSH connection manager for Linux, written in Python and GTK.

Foreword

In the world of open source SSH session managers for Linux, there is quite a diverse selection. But! the situation here is similar to that in the world of note-taking apps: there is a choice, but there’s nothing much to choose from.

For Windows, there is the excellent XShell - for me, this is the benchmark for a functional and convenient SSH session manager. But this software is proprietary software and for personal use, due to ideological views, it is not suitable for me.

For a long time, I searched for something similar to XShell, but for Linux and open source. Asbru Connection Manager came closest to this. Unfortunately, this manager is hardly developed, and the last release was quite a long time ago. Moreover, it has several bugs that are critical for me.

But one day, I asked a neural network a question describing my wishes, and it suggested a name previously unknown to me - SSH Pilot. This interested me, and I went to investigate. As you understand, it’s worth the effort, in my opinion, otherwise you wouldn’t be reading this article.

It’s worth noting right away that in terms of interface customization and working with tabs/windows, SSH Pilot significantly loses to both Asbru and, of course, XShell.

But, I hope this is only for now. After all, the developers are actively working on their product👨‍💻.

What makes SSH Pilot special?

I won’t invent anything, but simply list them from the official website:

It is worth noting separately the excellent integration of the application with the standard SSH config file: ~/.ssh/config.

For more details on its use, see the separate article:

The modern GTK4 toolkit with libadwaita is used here as the graphical toolkit. This makes the application look native and neat😌 in the Linux🐧 environment. The application’s logic is implemented in Python🐍.

Minimum Software Requirements

Requirements at the time of writing:

ComponentMinimum Version
GTK 44.6
libadwaita1.4
VTE (GTK4)0.70
PyGObject3.42
pycairo1.20.0
Paramiko3.4
cryptography42.0
keyring24.3
psutil5.9.0
GtkSourceView5.0

Installing SSH Pilot in Linux

Below is an example of installing SSH Pilot in Linux Mint Debian Edition 7 (Debian 13) by connecting the official repository:

BASH
# Add GPG key
curl -fsSL https://mfat.github.io/sshpilot-ppa/pubkey.gpg | \
    sudo gpg --dearmor -o /usr/share/keyrings/sshpilot-ppa.gpg  
  
# Add repository
echo "deb [signed-by=/usr/share/keyrings/sshpilot-ppa.gpg arch=amd64] https://mfat.github.io/sshpilot-ppa any main" | \
    sudo tee /etc/apt/sources.list.d/sshpilot-ppa.list  
  
# Install
sudo apt update && sudo apt install sshpilot
Click to expand and view more

You can also download SSH Pilot from the releases page on GitHub or from the official website in the corresponding section.

Launch the application, as usual, through the main menu.

Interface Overview

After launching the program, we will be greeted by this welcome window:

Here you can immediately create a new connection, launch a local terminal, or view/edit the current SSH config.

Overview of SSH Pilot’s Main Features

Application Settings

To go to settings, click the corresponding icon at the top of the program window:

Here we have various parameters available: interface settings, theme selection, terminal parameters, secure file transfer configuration, connection grouping, and, of course, SSH parameters:

In my configuration, I didn’t change much, except for the terminal font (I use Hack Nerd Font Mono) and the Nord color scheme (it’s in the standard list😌).

Example of adding new hosts

To add a new connection, click the + button at the top.

The first tab, “Connection”, allows you to configure the main connection parameters: host address, username, port, access credentials, and so on:

On the “Port Forwarding” tab, you can conveniently configure network port forwarding using SSH:

The next tab, “Commands”, allows you to set shell commands to be run locally and/or remotely when connecting to the host:

On the last tab, “Advanced”, you can fine-tune the connection. It’s worth noting the graphical ability to search for and specify the necessary SSH parameters (and there are many😉):

After clicking the “Save” button, a new connection will appear on the left side of the application. Double-clicking it establishes the connection:

About integration with ~/.ssh/config

Let me elaborate a bit on the program’s key “feature” for me: integration with the standard SSH client configuration file ~/.ssh/config.

By default, SSH Pilot reads connection parameters from your client config. Therefore, the program provides the ability to quickly edit it. Click on the “three dots” at the top of the window:

And select “SSH config editor”:

A window will open with a built-in editor for modifying the config:

Which is extremely convenient if you need to quickly view the configuration or edit it manually✍️.

Isolated Profile

If you do not want to affect your main configuration file, SSH Pilot offers the ability to create an isolated profile.

This is enabled in the program settings, in the “Advanced” section:

In this case, the config format is similar to the standard one, but it is now located at: ~/.config/sshpilot/ssh_config:

Host Grouping

One of the useful features is grouping hosts into separate folders with the ability to specify a color.

To do this, right-click on a host and select “Move to Group”:

In the window that appears, you need to specify a name and you can set a color. It will look like this:

Or like this:

About Storing Secrets

Naturally, SSH Pilot allows you to save user passwords or passphrases for SSH private keys required to connect to hosts.

They can be specified in the connection parameters or at the time of authorization.

If a password-protected key is used, a window like this will pop up:

All secrets are stored in the OS’s built-in keyring. In Linux Mint, the gnome-keyring with the Seahorse frontend is used:

Read more about keyrings here.

Secure File Transfer

It is worth explaining separately how secure file transfer is implemented using sftp.

To initiate it, simply click on the “Manage files” icon in the connection itself:

This opens file transfer in your file manager. In Linux Mint, this is Nemo:

In my opinion - very convenient!

To use the built-in scp, click the “transfer” button at the bottom of the window:

Export-Import SSH Pilot Configuration

To export/import the application configuration, including connection settings, use the corresponding menu item:

Afterword

In this small overview note, we got acquainted with such a convenient and modern tool as SSH Pilot.

Many people are skeptical of various graphical session managers, preferring to use only the command line SSH client for remote connections.

I have nothing against this. Moreover, I most often connect to my hosts in this way. But I also see nothing wrong with increasing convenience during work, including through GUI clients. Here, everyone chooses for themselves.

In my previous job, I actively used XShell as my primary SSH client for a long time. I really liked it - a truly high-quality and well-thought-out tool. But changes occurred, after which its use became impossible. And for personal purposes, I repeat, I fundamentally try to use open source software as much as possible.

Thank you for reading my blog. Good luck to you!

Used Materials

Raven’s blog articles on the topic:

Copyright Notice

Author: Иван Чёрный

Link: https://r4ven.me/en/software/ssh-pilot-sovremennyy-menedzher-ssh-sessiy-dlya-linux/

License: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut