Skip to content

Kiefer-Networks/sshvault

Repository files navigation

SSHVault

SSHVault

Zero-Knowledge Encrypted SSH Client
Secure, self-hosted, cross-platform terminal and SFTP manager

Release License: AGPL-3.0 CI Issues Stars

Google Play F-Droid Repo Kiefer Networks Donate via Liberapay


SSHVault is a cross-platform SSH terminal and SFTP file manager that encrypts all data client-side before syncing. The server never sees your plaintext credentials, keys, or session data.

Screenshots

Host List Navigation Add Server SSH Keys

SSH Terminal SFTP File Manager Settings

Features

Feature Description
SSH Terminal Split view, tabs, multiple simultaneous sessions, xterm-256color emulation
SFTP File Manager Browse, transfer, rename, chmod, symlinks, archive extraction, bookmarks
Zero-Knowledge Encryption AES-256-GCM with Argon2id key derivation
Host Key Verification Trust On First Use (TOFU) with known hosts management
SSH Key Management Ed25519, RSA, ECDSA key generation and import
SSH Config Import Import hosts and keys from ~/.ssh/config on desktop
Jump Hosts ProxyJump support for multi-hop connections
Proxy Support SOCKS5 and HTTP CONNECT, global or per-server configuration
Code Snippets Save and organize frequently used commands
Server Organization Folders, tags, color codes, icons, search and filtering
Post-Connect Commands Auto-run commands after connection
Biometric Lock Fingerprint/Face ID with PIN fallback and duress PIN
Cross-Device Sync End-to-end encrypted via self-hosted backend
Keep-Alive & Timeouts Configurable keep-alive interval and connection timeout
SSH Compression Optional compression toggle for slow connections
Export & Import Full backup and restore of all data
No Tracking No analytics, no telemetry, no ads, no in-app purchases

Platforms

Platform Status
Android Supported
iOS / iPadOS Supported
macOS Supported
Linux Supported (Flatpak)
Windows Supported

Install via F-Droid Repo

Add the Kiefer Networks F-Droid repository to your F-Droid client:

https://fdroid.kiefer-networks.de/fdroid/repo/

Install via Obtainium

You can install SSHVault directly from GitHub releases using Obtainium:

  1. Open Obtainium and tap Add App
  2. Enter the source URL:
    https://github.com/Kiefer-Networks/sshvault
    
  3. Set Release asset filter to arm64-v8a (or your architecture)
  4. Tap Add — Obtainium will track new releases and notify you of updates

Security

Layer Implementation
Encryption AES-256-GCM, 12-byte counter nonces
Key Derivation Argon2id (256 MiB, 3 iterations, p=1)
SSH Transport CSPRNG padding, SHA-256 fingerprints, constant-time MAC
Server Attestation Ed25519 TOFU key pinning (official + self-hosted)
DNS DNS-over-HTTPS with multi-provider cross-verification
Storage Platform keychain (Keystore / Keychain / libsecret / DPAPI)
PIN Argon2id hashed, brute-force lockout, duress wipe
Server Response padding, timing equalization, PoW challenges

Weak algorithms (DH-group1, CBC ciphers, HMAC-MD5/SHA1, ssh-rsa) are excluded from default negotiation.

Architecture

  • Client: Flutter 3.11+ / Dart 3.11+
  • Backend: sshvault-server — Go 1.26+, PostgreSQL 16+, chi router
  • State Management: Riverpod (no setState)
  • Local Database: Drift (SQLite) + Platform Secure Storage
  • Routing: go_router (declarative)
  • SSH: dartssh2 (hardened fork)
  • Design: Material 3 on all platforms

Clean Architecture with feature-based folder structure. Structured logging only.

Building from Source

Prerequisites

  • Flutter SDK 3.11+ (install guide)
  • Android SDK with minSdk 33 (Android 13+)
  • Java 17+ (for Android builds)
  • For Linux: sudo dnf install libsecret-devel (Fedora) or sudo apt install libsecret-1-dev (Debian/Ubuntu)

Clone

git clone https://github.com/Kiefer-Networks/sshvault.git
cd sshvault

Install dependencies and generate code

flutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter gen-l10n

Build Android APK

# Per-ABI builds (~30 MB each, recommended)
flutter build apk --release --split-per-abi

# Universal build (~80 MB, all architectures)
flutter build apk --release

Per-ABI APKs will be at build/app/outputs/flutter-apk/app-{arm64-v8a,armeabi-v7a,x86_64}-release.apk.

Build Android App Bundle (AAB)

flutter build appbundle --release

Other platforms

flutter build ipa --release         # iOS
flutter build linux --release       # Linux
flutter build macos --release       # macOS
flutter build windows --release     # Windows

Run tests

flutter test

Backend

The self-hosted backend handles encrypted vault sync and authentication. It never processes plaintext user data.

See sshvault-server for setup instructions.

Localization

Available in 28 languages:

Arabic, Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese

Translation files are in lib/l10n/.

Donate

If you find SSHVault useful, consider supporting development:

Donate via Liberapay

License

Copyright (C) 2024-2026 Kiefer Networks

This program is licensed under the GNU Affero General Public License v3.0.

The bundled dartssh2 fork (packages/dartssh2/) is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors