📋 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.

🎯 Perfect For: Windows users who need reliable, automated backups to remote servers with centralized management capabilities.

✨ 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
/backup/Documents/ ├── backup_20240115_120000.zip ├── backup_20240116_120000.zip └── backup_20240117_120000.zip

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
/backup/Photos/ ├── file1.jpg ├── file2.jpg └── subfolder/ └── file3.jpg

Best For: Media libraries, large file collections, frequently updated data.

Mixed Mode

Different folders can use different modes in the same backup job:

C:\Documents\ → ZIP Mode (versioned, encrypted) C:\Pictures\ → Sync Mode (efficient, incremental) C:\Work\Projects\ → ZIP Mode (versioned, encrypted) D:\Media\Videos\ → Sync Mode (efficient, incremental)

🌐 Remote API Integration

SSH Backup integrates with a remote management server for centralized configuration across multiple machines.

API Endpoints

EndpointMethodPurpose
/backup/api/settings_secure.php?username={user}GETFetch remote configuration
/backup/api/log_upload.phpPOSTUpload backup logs

Settings Response

{ "username": "john", "backupDirectory": "/mnt/backups/john", "maxBackupFiles": 7, "enabled": true }
💡 Fallback: If the API is unavailable, the application uses local settings. Backups continue running even if the management server is offline.

🤖 Headless Mode

Run SSH Backup without any GUI for automation and scheduling.

Command

ssh_backup.exe --headless

Exit Codes

CodeMeaning
0Backup completed successfully
1Backup failed
2Missing required settings
3Remote API fetch failed
4Backups disabled by remote server

Task Scheduler Setup

1. Open Task Scheduler (Win+R → taskschd.msc) 2. Create Basic Task → Name: SSH Backup - Daily 3. Trigger: Daily at 2:00 AM 4. Action: Start a program Program: C:\Program Files\SSHBackup\ssh_backup.exe Arguments: --headless 5. ☑ Run whether user is logged on or not ☑ Run with highest privileges

📖 Usage Guide

Initial Setup

  1. Launch SSH Backup
  2. Click Settings — configure SSH host, port, username, password, remote path
  3. Optionally set ZIP password and remote API details
  4. Click Add Folder or Add File
  5. Choose backup mode per folder (ZIP or Incremental Sync)
  6. Click Start Backup to test

Settings Reference

SettingRequiredDescription
SSH HostSFTP server hostname or IP
SSH PortDefault: 22
UsernameSSH login name
SSH PasswordStored encrypted (DPAPI)
Remote PathDestination directory on server
ZIP PasswordAES-256 encryption for archives
Max Backup FilesRetention limit per folder (0 = unlimited)
Remote Server URLAPI base URL for centralized management
Remote API KeyAPI authentication key
Upload Log FileAuto-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

📖 Read the Full User Guide →