Files
x3-ssh/README.md
T
x3 6e719c3236 Fix: crash on failed connect, add sidebar edit/delete, password saving
- Fix crash when SSH connect fails: remove page BEFORE deleting terminal
- Sidebar right-click context menu: Connect / Edit / Delete
- Password field + Save password checkbox in server dialog
- ServerConfig stores password and save_password fields
- Auto-connect uses saved password when available
- Restore original flaticon icon
2026-09-07 15:34:23 +00:00

4.4 KiB

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 in a sidebar, double-click to connect, right-click for Edit/Delete
  • Quick connect - Connect directly via host/user/port fields in the toolbar
  • Password storage - Optionally save passwords with servers (stored in config file)
  • SSH key management - Generate, import, and manage SSH keys
  • Notifications - Animated notification bar for status messages
  • 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
    • Right-click for context menu (Connect / Edit / Delete)
    • Click + to add a new server
  3. Quick Connect: Enter host, user, and port in the toolbar, click "Connect"
  4. SSH Keys: Click "Keys" in the toolbar to generate or import SSH keys
  5. Tabs: Click "+ Tab" for a new empty tab, "Close Tab" to close the current one

Server Dialog Fields

Field Description
Name Display name for the server
Host Hostname or IP address
User SSH username
Port SSH port (default: 22)
Password Optional, can be saved
Save password Checkbox to store password in config
SSH Key Optional key for public key authentication

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                          │
└────────────────────────────────────────────────────┘

Right-click on a server in the sidebar:

┌──────────┐
│ Connect  │
│ Edit     │
│ Delete   │
└──────────┘

License

MIT