📋 Overview
SSH Backup is a powerful .NET 10 Windows application designed for automated, secure backups to remote SSH/SFTP servers. It combines the flexibility of GUI management with the automation of headless scheduled backups, making it perfect for both individual users and enterprise deployments.
✨ Core Features
Dual Backup Modes
Choose between ZIP archives (versioned, encrypted) or incremental sync (rsync-like) on a per-folder basis.
AES-256 Encryption
Password-protected ZIP files with industry-standard encryption keep your data secure at rest.
Remote API Integration
Centralized configuration management through REST API. Control backups for multiple machines from one server.
Headless Mode
Run backups via command-line for Task Scheduler integration. Perfect for automated, unattended backups.
Comprehensive Logging
Detailed backup logs with automatic upload to remote server. Track backup history and troubleshoot issues.
Organized Storage
Each folder gets its own subdirectory on the server. Clean, organized backups that are easy to restore.
Auto-Cleanup
Automatically removes old ZIP backups based on configurable file limits. Prevents storage overflow.
Progress Tracking
Real-time progress bars and status updates. Know exactly what's happening during backups.
Flexible Configuration
Registry-based settings with secure password storage. Configure per-folder backup methods and retention policies.
🔀 Backup Modes
📦 ZIP Backup Mode
- Versioned backups with timestamps
- AES-256 encryption with password
- Automatic compression
- File retention limits per folder
- Point-in-time recovery
Best For: Documents, databases, configuration files, and data requiring versioning.
🔄 Incremental Sync Mode
- Pure .NET — no external rsync needed
- Only uploads changes (new/modified files)
- Preserves timestamps and structure
- No file limits (single copy)
- Efficient for large datasets
Best For: Media libraries, large file collections, frequently updated data.
Mixed Mode
Different folders can use different modes in the same backup job:
🌐 Remote API Integration
SSH Backup integrates with a remote management server for centralized configuration across multiple machines.
API Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/backup/api/settings_secure.php?username={user} | GET | Fetch remote configuration |
/backup/api/log_upload.php | POST | Upload backup logs |
Settings Response
🤖 Headless Mode
Run SSH Backup without any GUI for automation and scheduling.
Command
Exit Codes
| Code | Meaning |
|---|---|
0 | Backup completed successfully |
1 | Backup failed |
2 | Missing required settings |
3 | Remote API fetch failed |
4 | Backups disabled by remote server |
Task Scheduler Setup
📖 Usage Guide
Initial Setup
- Launch SSH Backup
- Click Settings — configure SSH host, port, username, password, remote path
- Optionally set ZIP password and remote API details
- Click Add Folder or Add File
- Choose backup mode per folder (ZIP or Incremental Sync)
- Click Start Backup to test
Settings Reference
| Setting | Required | Description |
|---|---|---|
| SSH Host | ✓ | SFTP server hostname or IP |
| SSH Port | Default: 22 | |
| Username | ✓ | SSH login name |
| SSH Password | ✓ | Stored encrypted (DPAPI) |
| Remote Path | ✓ | Destination directory on server |
| ZIP Password | AES-256 encryption for archives | |
| Max Backup Files | Retention limit per folder (0 = unlimited) | |
| Remote Server URL | API base URL for centralized management | |
| Remote API Key | API authentication key | |
| Upload Log File | Auto-upload logs to API after backup |
Technical Details
- Platform: Windows 10/11 (x64)
- Framework: .NET 10.0, WPF
- Dependencies: SSH.NET (MIT), DotNetZip (Ms-PL)
- Security: DPAPI-encrypted passwords, AES-256 ZIP encryption, SSH transport