
If you're working with multiple servers, jumping between SSH sessions, port rules, and keys can become chaotic; with sshPilot All that mess becomes manageable and even enjoyable thanks to a tabbed interface, an integrated terminal, and well-thought-out shortcuts that make it a modern, lightweight, and detail-oriented SSH connection manager. available for GNU/Linux and macOS.
This project is not intended to replace your regular terminal, it is intended to enhance it: it organizes hosts, securely stores credentials, offers integrated SFTP and SCP, and lets you choose between using its own console or opening the connection in your favorite emulator, so that You can focus on your work without struggling with long commands and scattered settings..
What is sshPilot and why can it help you?
sshPilot is a SSH connection manager with integrated terminal It loads and saves standard entries from ~/.ssh/config (or works with a dedicated configuration file if you prefer). It focuses on fluid use: opening, closing, and switching tabs with the keyboard, organizing servers into groups, and performing common tasks (copying keys, port forwarding, file transfers) in just a few clicks or shortcuts.
The application stands out for being light and fast, with a native GNOME aesthetic, light/dark theme options, and font and color customization in the terminal. It's free software under the GPL v3 license, which facilitates community auditing and collaboration, while ensuring its continued accessibility.
Main features of sshPilot
- Tabbed interface for managing multiple SSH sessions without losing context, with tabbed overview.
- Keyboard shortcuts for navigating: Press Enter to connect to the first host, use Ctrl+L to switch servers, close with Ctrl+W, and move between tabs with Alt+Right/Left Arrow.
- File management with SFTP and SCP support for fast uploads and downloads to/from remote machines.
- Server groups to keep your connections organized by projects or clients.
- Integrated terminal or open in your preferred emulator; you choose where to work.
- Sending broadcast commands to all open tabs when you need to execute the same command on multiple hosts.
- Full port forwarding: local, remote, and dynamic, with easy configuration.
- Guided key pair generation and public key copying to servers with ssh-copy-id.
- Execute local or remote commands after login to automate welcome tasks.
- Secure credential storage using libsecret on Linux; no need to copy passwords to the clipboard or save them in plain text.
- Privacy switch to hide or show IPs and hostnames in the main window.
- Light/dark themes and customization of typography and color schemes in the terminal.
- Load/save from ~/.ssh/config or use your own configuration file, depending on your preferences.
- Distribution for GNU/Linux and macOS, with various packages and installation methods.
All this is presented in a minimalist and intuitive interface, designed to make the keyboard the center of attention and reduce clicks to the minimum necessary, which makes a difference during long administrative days.
sshPilot interface, tabs, and workflow
The main window displays your hosts clearly, with a home page and a tab view that make it easy to jump between sessions. You can activate or hide the sidebar when you need more space in the Terminal, and see a summary of your open tabs to get your bearings in seconds.
The logic is straightforward: open the app and press Enter to connect to the first host; with Ctrl+L you change servers, with Alt+arrows you move forward or back between tabs and with Ctrl+W you close the current one, which turns sshPilot into a tool fast and very comfortable for power users.
Transfers: Integrated SFTP and SCP
To move files you don't need to leave the workflow: the integrated SFTP client allows manage directories and files remotely, and SCP support speeds up one-time uploads or downloads without setting up anything extra. This is especially useful when working with multiple servers and want to avoid opening additional windows.
This approach fits with tasks such as upload a deployment binary, review logs, or synchronize settings. Being integrated reduces context and increases speed, which is key in repetitive operations.
Port forwarding: local, remote, and dynamic
sshPilot offers full support for all port forwarding modes: local, remote and dynamicThis allows you to expose local services remotely, publish server services to your machine, or flexibly create SOCKS tunnels, all from a single, clear interface.
If you change the rules often, you will value power modify them without fighting with command line flags, reducing errors and speeding up testing, especially when switching between staging and production environments.
Credential security and privacy
In Linux, sensitive information is stored through libsecret and the Secret Service API, preventing copies to the clipboard or clear text. Additionally, you can activate a privacy switch to hide IP addresses and hostnames in the main window, which is useful if you work in shared spaces or on demos.
Key pair generation and the function of copy public key to servers via ssh-copy-id are integrated, so implementing key-based access is simple and consistent with good security practices.
Integrated terminal or your favorite emulator
The application includes a ready-to-use integrated terminal, with Customizing fonts and color schemes, as well as light and dark themes to match GNOME. If you prefer your usual emulator, you can open connections there, keeping control of the environment that works best for you.
This translates into flexibility: there are teams that appreciate the native experience and the GNOME look and feel, and others who prefer to stick with their classic terminal; both options coexist seamlessly.
Support for ~/.ssh/config and automations
A pillar of the project is full compatibility with standard entries in ~/.ssh/config.sshPilot can load your current configuration and save changes, or work with a dedicated file if you want to separate contexts. This way, you can reuse aliases, proxies, and advanced options without reinventing the wheel.
In addition, you can define commands to run at login (both local and remote). This saves time on repetitive tasks, such as exporting variables, starting tmux, or launching diagnostic scripts after connecting.
Installing sshPilot on GNU/Linux and macOS
The most direct way to get the latest stable version is to download it from the releases section on GitHub, where you'll find packages for different platforms, in addition to the dmg for macOS. If you're using Linux, there are several options depending on your distribution and preferences.
Flathub (Flatpak)
sshPilot is available on Flathub, which makes installation and updates much easier. You can install it with: flatpak install flathub io.github.mfat.sshpilot
With Flatpak you ensure a consistent and centralized updates, ideal if you manage multiple machines or don't want to struggle with distro-specific dependencies.
Arch Linux (AUR)
There is a package in the AUR for Arch users: archlinux.org/packages/sshpilot. This package, which has been enthusiastically noted by the community, allows integrate sshPilot into your rolling system without complications, something celebrated by those who always seek to be up to date.
DEB and RPM packages
DEB and RPM packages are available through the project's GitHub repository. The Debian package can be installed at recent versions of Debian (testing/unstable) and Ubuntu. Note that Debian bookworm is not supported by the included libadwaita version.
For Fedora, RHEL or CentOS, the instructions say to install system dependencies and GI bindings suitable (GTK, libadwaita and VTE) from the official repos, avoiding their installation via pip.
macOS (DMG)
For macOS you can download the dmg file from the releases page on GitHub. The experience is consistent with Linux in terms of interface and shortcuts, and maintains the focus on lightness and speed.
Run from source code
If you prefer to test or contribute, you can run the app from the repository: install the modules listed in requirements.txt and make sure you have a recent version of GNOME. Then, just start with: python3 run.py
For detailed debugging, start with the parameter --verbose So: python3 run.py --verbose. Remember to install the GTK/libadwaita/VTE GI bindings from your system; do not install them with pip.
Debugging and verbose output
When you need to see what's going on under the hood, verbose mode is a great help. Run the app with the flag -verbose to activate a more complete record, especially useful when trace connection, forwarding, or authentication problems.
This debugging approach is practical whether you are testing new features as if you were investigating unusual behavior in a specific environment.
Featured news and versions
The project has evolved rapidly. There was a migration to libadwaita for a more modern look, full ssh/config support, comprehensive port forwarding support, IP/host hiding switch, SCP file upload button, public key upload (ssh-copy-id), keyboard navigation improvements, more themes and colors, and key pair generation.
Among the recently listed versions are: sshPilot v4.0.3, v4.0.2, v4.0.1, v4.0.0, v3.8.7, v3.8.6, v3.8.5, v3.8.4 and v3.8.3, which denotes a steady pace of improvements. The release of version 2.0 already marked a leap forward with several of these capabilities integrated and a Debian packaged distribution.
Beyond numbers, the focus remains performance, compatibility and usability, with a polished interface and shortcuts that feel natural in everyday use.
User experience: details that make a difference
sshPilot allows you to group servers into folders, enable or disable a sidebar based on context, and toggle a Privacy mode to hide IP and hostnamesThese details help you work smoothly in environments with many simultaneous connections or when sharing a screen.
Also noteworthy is the option of broadcast a command to all open tabs, very useful in repetitive operations or coordinated deployments on multiple hosts at once, always taking care to avoid accidental executions.
Practical tips for daily use of sshPilot
Start by importing your entries from ~/.ssh/config to have everything in one place and take advantage of server groups to separate production, pre-production, and development. Activate the privacy switch if you're giving presentations or sharing your screen.
If you work in batches, use the command broadcast carefully and confirm the objectives before executing. Configure post-login commands to prepare the environment, for example, by launching tmux or running initial checks.
For files, use SFTP whenever you want browse and manage directories, and reserve SCP for quick one-time transfers. Switch between the built-in terminal and your favorite emulator depending on the task and plugin profile you need.
sshPilot Compatibility and Dependencies
On Linux, make sure you have installed from your system the following: GI bindings for GTK, libadwaita, and VTE (Don't install them with pip.) On Debian/Ubuntu, you'll need minimum versions that match the project's current dependencies; for Fedora, RHEL, or CentOS, use the official repos for each distribution.
If you run from code, review requirements.txt, prepare an environment with Recent GNOME and the appropriate graphical stack, then start with python3 run.py or with the –verbose flag if you are debugging.
sshPilot brings together in a single application what many administrators have been doing with scattered tools: quick tabs, SFTP and SCP, full port forwarding, ~/.ssh/config support, convenient shortcuts, and secure storage with libsecret. If you want to go light but well-equipped, It is a very solid option for managing SSH on Linux and macOS..