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

131 lines
4.4 KiB
Markdown

# x3-ssh
A GTK3-based SSH client with a tabbed terminal interface, server sidebar, notifications, and SSH key storage.
![Icon](icons/x3-ssh.png)
## 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
```bash
# 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
```bash
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