Metadata-Version: 2.4
Name: qssh
Version: 0.2.3
Summary: Quick SSH session manager - save your VM credentials and connect with a single command
Author: joan-code6
License-Expression: MIT
Project-URL: Homepage, https://github.com/joan-code6/qssh
Project-URL: Repository, https://github.com/joan-code6/qssh
Project-URL: Issues, https://github.com/joan-code6/qssh/issues
Keywords: ssh,session,manager,vm,cli,terminal
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Networking
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: paramiko>=3.0.0
Dynamic: license-file

# qssh

**Quick SSH session manager** - Save your VM credentials and connect with a single command.

Tired of copy-pasting credentials every time you want to SSH into your VMs? `qssh` lets you save your session configs and connect instantly.

## Installation

```bash
pip install qssh
```

## Quick Start

### 1. Add a new session

```bash
qssh add myserver
```

You'll be prompted for:
- Host (IP address or hostname)
- Username
- Port (default: 22)
- Authentication method (password or key file)

### 2. Connect to your VM

```bash
qssh myserver
```

That's it! You're connected.

## Commands

| Command | Description |
|---------|-------------|
| `qssh <session>` | Connect to a saved session |
| `qssh add <name>` | Add a new session |
| `qssh list` | List all saved sessions |
| `qssh remove <name>` | Remove a session |
| `qssh edit <name>` | Edit an existing session |
| `qssh show <name>` | Show session details |
| `qssh config` | Show config file location |

## Examples

```bash
# Add a session for your myserver VM
qssh add myserver
# Host: 192.168.1.100
# Username: admin
# Port [22]: 22
# Auth type (password/key) [password]: password
# Password: ********

# Now just connect with:
qssh myserver

# List all your sessions
qssh list

# Remove a session
qssh remove old-server

# Show details of a session
qssh show myserver
```

## Using SSH Keys

For key-based authentication:

```bash
qssh add myserver
# Host: example.com
# Username: deploy
# Port [22]: 22
# Auth type (password/key) [password]: key
# Key file path [~/.ssh/id_rsa]: ~/.ssh/my_key
# Key passphrase (leave empty if none): ********
```

Supported key types:
- RSA
- Ed25519
- ECDSA
- DSS

## Configuration

Sessions are stored in `~/.qssh/sessions.yaml`. Passwords and key passphrases are stored encoded (not plaintext) but for maximum security, consider using SSH keys without passphrases or with an SSH agent.

## License

MIT License
