3.8 KiB
3.8 KiB
x3-ssh
A GTK3-based SSH client with a tabbed terminal interface, server sidebar, notifications, and SSH key storage.
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 -
.desktopfile 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
- Start the application:
x3-ssh - Server Sidebar: Saved servers appear in the left sidebar. Double-click to connect.
- Quick Connect: Enter host, user, and port in the toolbar, click "Connect"
- Add Server: Click the
+button in the sidebar header, or use the "Add Server" dialog - SSH Keys: Click "Keys" in the toolbar to generate or import SSH keys
- 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 savedServer connected: <user>@<host>:<port>- on successful connectionServer disconnected- when disconnectingServer removed: <name>- when a server is deletedKey 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