qssh 0.0.2-alpha

Experimental quantum-safe SSH using post-quantum crypto. Research project - NOT for production. See LIMITATIONS.md
Documentation
# QSSH Testing Instructions

## Current Status
- ✅ Quantum-secure authentication working
- ✅ Server accepts connections
- ✅ Shell spawns successfully
- ⚠️  Interactive shell requires real terminal (not piped input)

## How to Test Interactive Shell

### Terminal 1 - Start Server
```bash
QSSH_AUTH_PATH=/Users ./target/release/qsshd -l 127.0.0.1:4242 --host-key ~/.qssh/host_key
```

### Terminal 2 - Connect Client
```bash
./target/release/qssh -p 4242 $USER@localhost
```

You should see:
1. "Welcome to QSSH!" message
2. A shell prompt (may take a second)
3. Ability to type commands like `ls`, `pwd`, `whoami`
4. Command output displayed
5. Exit with `exit` or Ctrl+D

## Why Piped Commands Don't Work Yet

The current implementation expects an interactive PTY session. When you pipe commands:
```bash
echo "ls" | ./target/release/qssh -p 4242 user@localhost
```

The client detects it's not a TTY and the shell doesn't properly handle non-interactive mode.

## Next Steps Needed

1. **Add exec support** - For running single commands: `qssh -c "ls" user@host`
2. **Fix non-TTY mode** - Handle piped input properly
3. **Port forwarding** - Wire up the `-L` and `-R` flags
4. **SFTP subsystem** - For file transfers

## Testing Port Forwarding (when ready)

```bash
# Local forwarding (access remote service through local port)
./target/release/qssh -L 8080:localhost:80 user@host

# Remote forwarding (expose local service to remote)
./target/release/qssh -R 9000:localhost:3000 user@host

# SOCKS proxy
./target/release/qssh -D 1080 user@host
```

## Debug Mode

Run with verbose output:
```bash
RUST_LOG=debug ./target/release/qssh -v -p 4242 user@localhost
```