x3-ssh

A GTK3-based SSH client with a tabbed terminal interface, server sidebar, notifications, and SSH key storage.

Icon

Features

  • Tabbed terminal - Multiple SSH sessions in tabs
  • Server sidebar - Saved servers displayed in a sidebar, double-click to connect
  • Quick connect - Connect directly via host/user/port fields in the toolbar
  • SSH key management - Generate, import, and manage SSH keys
  • Notifications - Animated notification bar for status messages (saved, connected, disconnected, errors)
  • VTE terminal - Full terminal emulation with 256 color support
  • Resizable pty - Terminal auto-resizes the remote pty on window resize
  • System integration - .desktop file and icon for application menu entry

Dependencies

  • GTK+ 3.0 (>= 3.24)
  • VTE 2.91 (>= 0.50)
  • libssh (>= 0.9)
  • autotools / autoconf / automake / libtool
  • pkg-config
  • g++ with C++17 support

Building

# Install dependencies (Debian/Ubuntu)
sudo apt install libgtk-3-dev libvte-2.91-dev libssh-dev \
    autoconf automake libtool pkg-config

# Build
mkdir -p build-aux
autoreconf -fi
./configure
make

# Install (installs binary, .desktop file, and icon system-wide)
sudo make install

Uninstall

sudo make uninstall

Configuration

Server configurations are stored in:

~/.config/sshclient/servers.conf

SSH keys are stored in:

~/.config/sshclient/keys.conf
~/.config/sshclient/keys/

Usage

  1. Start the application: x3-ssh
  2. Server Sidebar: Saved servers appear in the left sidebar. Double-click to connect.
  3. Quick Connect: Enter host, user, and port in the toolbar, click "Connect"
  4. Add Server: Click the + button in the sidebar header, or use the "Add Server" dialog
  5. SSH Keys: Click "Keys" in the toolbar to generate or import SSH keys
  6. Tabs: Click "+ Tab" for a new empty tab, "Close Tab" to close the current one

Notifications

The notification bar at the top shows status messages:

  • Server saved: <name> - when a server config is saved
  • Server connected: <user>@<host>:<port> - on successful connection
  • Server disconnected - when disconnecting
  • Server removed: <name> - when a server is deleted
  • Key generated: <name> / Key imported: <name> / Key deleted: <name>
  • Failed to connect to <host> - on connection failure (red)

Notifications auto-hide after 4 seconds.

Layout

┌────────────────────────────────────────────────────┐
│ [Notification bar - auto-hiding]                   │
├────────────────────────────────────────────────────┤
│ [Server▼] [host___] [user___] [port] [Connect] ...│
├───────────┬────────────────────────────────────────┤
│ Servers   │ [Tab: MyServer] [Tab: Prod] [+]        │
│ ─────── │                                        │
│ MyServer  │  user@host:~$                         │
│ root@h:22 │                                        │
│           │                                        │
│ Prod      │                                        │
│ admin@p:22│                                        │
├───────────┴────────────────────────────────────────┤
│ Connected to root@host:22                          │
└────────────────────────────────────────────────────┘

License

MIT

S
Description
GTK3 SSH client with tabbed terminal, server management and SSH key storage
Readme
564 KiB
Languages
Makefile 48.9%
Shell 31.1%
C++ 19.9%
M4 0.1%