# 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
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
```