Skip to content

Repository files navigation

Smart SSH 🚀

CI Release License: MIT Rust Tauri

Smart SSH ist ein moderner, plattformübergreifender Desktop-SSH-Client mit integriertem Server-Manager und sicherem KI-Kommando-Assistenten. Entwickelt mit Rust und Tauri v2 für maximale Geschwindigkeit, minimale Ressourcennutzung und kompromisslose Sicherheit.


✨ Hauptfunktionen

🖥️ Server- & Gruppen-Management

  • Hierarchische Gruppen & Tags: Organisiere Server in verschachtelten Gruppen mit Vererbung von Tags und Kontextnotizen.
  • Jump Hosts / Bastions: Nahtlose Verkettung über Zwischen-Server (SSH-Bastion-Hosts).
  • Flexible Authentifizierung: Unterstützung für Passwörter, Private Keys (verschlüsselt mit Passphrase), SSH-Agent (SSH_AUTH_SOCK) und OpenSSH-Zertifikate.
  • Sichere Secret-Verwaltung: Zugangsdaten und API-Keys werden ausschließlich im nativen OS-Schlüsselbund gespeichert (macOS Keychain, Windows Credential Manager, Linux Secret Service).
  • Integrierte SQLite-Datenbank: Speicherung von Serverprofilen, Tags, Notizhistorien und Sicherheitsregeln mit automatischen Migrationen.
  • Verbindungstest vorab: Sofortige Validierung von Host, Port, Jump-Host und Zugangsdaten vor dem Speichern.

🤖 Sicherer KI-Assistent & Split-Screen UI

  • Dual-Panel-Layout: Chat-Panel als primärer Arbeitskanal links, interaktives xterm.js-Terminal rechts für Beobachtung und manuelle Eingriffe.
  • Multi-Provider-Support: Direkte Anbindung an OpenAI (GPT-4o, etc.), Anthropic (Claude 3.5 Sonnet, etc.), Ollama (lokale Modelle) sowie generische OpenAI-kompatible APIs.
  • Live-Streaming: Echtes Server-Sent Events (SSE) Streaming für sofortiges Text- und Status-Feedback.
  • Automatisierte Folgerunden: Die KI interpretiert ausgeführte Befehlsausgaben und schlägt bei mehrstufigen Diagnose- und Wartungsaufgaben selbstständig nächste Schritte vor.

🛡️ Filter- & Policy-Engine (Fail-Safe Defaults)

  • 3-stufige Entscheidung: Jedes vorgeschlagene Kommando wird strikt evaluiert:
    • AutoExec: Automatische Ausführung (nur bei expliziter Allow-Regel)
    • Confirm: Manuelle Bestätigung durch den Nutzer (mit Live-Kommando-Editor)
    • Deny: Harte Blockierung gefährlicher Befehle
  • Präzedenz: Hard-Blacklist > Deny > Confirm > Allow > Default (Confirm).
  • Evasionsschutz: Parser zerlegt Operatoren (&&, ||, ;, |, &, \n, \r) und Command-Substitutionen ($(...), Backticks, <(...)), um Filterumgehungen zuverlässig zu verhindern.
  • Prompt-Isolation: Verhindert Indirect Prompt Injections (IPI) durch strukturierte Kapselung von Server-Outputs und Validierung von System-Metadaten.
  • Automatische Secret-Redaction: Erkennt und maskiert Passwörter, Private Keys, Bearer-Tokens, GitHub-PATs und AWS-Keys im Terminal-Output, bevor Daten an die KI-API gesendet werden.

📝 Notizen, Revisionshistorie & Dokumenten-Export

  • Automatische Notiz-Vorschläge: Vorschlag relevanter Betriebsinformationen (Pfade, Versionen, Configs) beim Trennen einer SSH-Session.
  • Revisionshistorie (Audit-Trail): Vollständige Versionshistorie für Server- und Gruppennotizen mit 1-Klick-Rollback.
  • Quick Rule Creation: Erstelle dauerhafte Filterregeln direkt aus dem Bestätigungsdialog heraus.
  • Dokumenten-Generator & Multi-Format-Export: Erstelle Systemberichte, Runbooks und Protokolle und exportiere sie auf Knopfdruck nach Markdown (.md), HTML (.html), PDF (.pdf) und Word (.docx).

🏛️ Architektur-Übersicht

Das Projekt ist als modularer Cargo-Workspace aufgebaut:

smart_ssh/
├── crates/
│   ├── core/                  # ssh-manager-core: Domain-Typen, Filter-Engine, Redactor
│   ├── ssh-transport/         # russh-Implementierung, Shell-PTY, Exec, HostKey-Check
│   ├── ai-providers/          # OpenAI, Anthropic, Ollama, SSE-Parser, Fallback-Modus
│   ├── credentials-keyring/   # OS-Keychain-Anbindung (keyring-Crate)
│   ├── persistence-sqlite/    # SQLite-Speicher für Profile, Notizen, Regeln & AI-Configs
│   └── app-tauri/             # Tauri-v2-Desktop-App, Orchestrierung & React-Frontend
│       └── frontend/          # React 19, TypeScript, Tailwind CSS, xterm.js
├── docs/
│   ├── adr/                   # Architecture Decision Records (0001–0019)
│   └── specs/                 # Feature-Spezifikationen (0001–0014)
└── .github/workflows/         # CI/CD & Multi-Platform Release Workflows

📦 Installation & Download

Fertige Installer und Binaries für alle Plattformen stehen unter Releases bereit:

  • macOS: .dmg-Installer (Universal Binary für Apple Silicon & Intel)
  • Windows: .msi / .exe-Installer (x64)
  • Linux: .AppImage (direkt startbar) oder .deb-Paket

Hinweis für macOS-Nutzer: Falls Gatekeeper beim ersten Start eine Warnung anzeigt, kann das Quarantäne-Attribut im Terminal entfernt werden:

xattr -cr /Applications/Smart\ SSH.app

🛠️ Entwicklung & Bauen

Voraussetzungen

Lokaler Entwicklungsstart

# 1. Repository klonen
git clone https://github.com/brokoskokoli/smart_ssh.git
cd smart_ssh

# 2. Frontend-Abhängigkeiten installieren
cd crates/app-tauri/frontend
npm install
cd ../../..

# 3. Desktop-App im Dev-Modus starten
cargo tauri dev --manifest-path crates/app-tauri/Cargo.toml
# oder aus crates/app-tauri/frontend:
npm run tauri dev

Tests & Linting

# Alle Unit- und Integrationstests im gesamten Workspace ausführen
cargo test --workspace

# Code-Formatierung prüfen
cargo fmt --all --check

# Clippy-Lints prüfen
cargo clippy --workspace --all-targets -- -D warnings

📚 Dokumentation


📄 Lizenz

Dieses Projekt ist unter der Functional Source License, Version 1.1 (FSL-1.1-MIT) lizenziert (mit automatischem Übergang zur MIT-Lizenz nach zwei Jahren) – siehe LICENSE.md für Details.

About

Multiplatform SSH Client with AI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages