
Ein einfaches und sicheres Kommandozeilen-Tool für die Verwaltung von TOTP-basierten Zwei-Faktor-Authentifizierungscodes.

Authy / Google Authenticator für die Kommandozeile.
Hotpot ist ein einfaches und sicheres Kommandozeilen-Tool zur Verwaltung von TOTP-basierten Zwei-Faktor-Authentifizierungscodes. Hotpot speichert Ihre 2FA-Geheimnisse sicher im System-Keyring und generiert zeitbasierte Einmalpasswörter, wenn Sie sie benötigen.
Mit Rust entwickelt für Sicherheit, Leistung und Zuverlässigkeit.
Klonen Sie dieses Repository und führen Sie aus
cargo install --path . --locked
hotpot add <account-name>
Sie werden aufgefordert, das Base32-Geheimnis sicher einzugeben.
Beispiel:
hotpot add github
Enter the Base32 secret: ********
hotpot --load-image /path/to/qr-code.png
Oder verwenden Sie die interaktive Screenshot-Erfassung im Dashboard, indem Sie [A] und dann [S] drücken.
Führen Sie einfach hotpot aus, um das interaktive Dashboard zu öffnen, wo Sie:
Das Dashboard aktualisiert sich automatisch alle 250 ms und behandelt Terminal-Größenänderungen elegant.
hotpot code <account-name>
Beispiel:
hotpot code github
hotpot delete <account-name>
Sie können einen QR-Code für ein Konto entweder über das Dashboard (drücken Sie [E]) oder mit dem Befehl exportieren:
hotpot export-qr --name <account-name>
Dies zeigt einen QR-Code im Terminal an, der von Authentifikator-Apps gescannt werden kann.
Für portable Konfigurationen oder wenn der Keyring-Zugriff nicht verfügbar ist, können Sie das Flag --file verwenden, um Konten in einer JSON-Datei anstelle des sicheren Keyrings zu speichern.
# Interaktives Dashboard mit Dateispeicher
hotpot --file ~/.config/hotpot/accounts.json
# Konto zur Datei hinzufügen
hotpot --file ./my-accounts.json add work-account
# Code aus dateibasiertem Konto generieren
hotpot --file ./my-accounts.json code work-account
# Konto aus Datei löschen
hotpot --file ./my-accounts.json delete work-account
Anwendungsfälle für dateibasierten Speicher:
Sicherheitshinweis: Dateibasierter Speicher speichert Geheimnisse in Klartext-JSON. Stellen Sie angemessene Dateiberechtigungen (600) sicher und erwägen Sie, die Datei für sensible Umgebungen zu verschlüsseln.
Standardmäßige sichere Speicherung: Hotpot speichert alle Geheimnisse sicher in Ihrem System-Keyring:
Dateibasierter Speicher: Bei Verwendung des --file-Flags werden Konten in einer JSON-Datei am angegebenen Pfad gespeichert. Die Datei wird mit den entsprechenden Berechtigungen (600) erstellt und Verzeichnisse werden bei Bedarf automatisch erstellt. Dieser Modus ist nützlich für portable Konfigurationen oder wenn der Keyring-Zugriff nicht verfügbar ist.
cargo build --release
Die Binärdatei befindet sich unter target/release/hotpot
Das Projekt enthält umfassende Unit-Tests, die die Kernfunktionalität abdecken:
cargo test
Die Testabdeckung umfasst:
# Run in development mode
cargo run
# Run with specific arguments
cargo run -- add github
# Test with file storage
cargo run -- --file test-accounts.json add test-account
# Check code quality
cargo clippy
# Quick compile check
cargo check
Hotpot ist mit einer modularen Architektur aufgebaut, die auf Sicherheit und Wartbarkeit ausgerichtet ist:
main.rs: CLI-Schnittstelle und Speicherverwaltungtotp.rs: Implementierung des TOTP-Algorithmus (RFC 6238) mit umfassender Testabdeckungdashboard.rs: Interaktive Terminal-UI mit Echtzeitaktualisierungen und umfangreichen Unit-Testslib.rs: Gemeinsame Fehlerbehandlung und gemeinsam genutzte Hilfsprogrammekeyring, base32, hmac, sha1/sha2clap, crossterm, rpasswordfuzzy-matcher, qrcode, arboardserde, serde_json, url, urlencodingimage, (QR code detection)MIT-Lizenz
Beiträge sind willkommen! Bitte zögern Sie nicht, einen Pull Request einzureichen.
Das Projekt hält hohe Codequalitätsstandards ein:
cargo test aus)cargo clippy aus)rqrr