Best cloud storage services with CLI for Qubes OS: (Tutorial)

TopLinux

Introduction to CLI-based Cloud Storage on Qubes OS

Qubes OS is a security-focused distribution that isolates tasks into lightweight virtual machines (qubes). When you need to interact with cloud storage, a Command-Line Interface (CLI) tool offers both flexibility and scriptability, fitting neatly into Qubes’ compartmentalized workflow. In this article we compare and recommend the best CLI-enabled cloud storage services for Qubes OS, outline how to install and use each from the CLI, and highlight common pitfalls and troubleshooting tips.

Why Choose CLI Tools on Qubes OS?

  • Automation: Easily script uploads, downloads, and sync tasks.
  • Minimal Dependencies: Many CLI clients are standalone binaries or Python scripts—ideal for lean TemplateVMs.
  • Isolation: Run each tool in its own qube, reducing cross-service exposure.
  • Flexibility: Combine with cron, systemd timers, or custom shell scripts.

Top Recommended Services

  • pCloud – Zero-knowledge encryption, dedicated Linux CLI pcloudcmd.
  • MEGA – End-to-end encryption, official mega-cmd.
  • Proton Drive – Privacy-focused, WebDAV interface for CLI clients.
  • Filen – Zero-knowledge, official filen-cli.
  • Tresorit – Enterprise-grade encryption, accessible via rclone.
  • Icedrive – Zero-knowledge, official icedrive CLI FUSE.
  • Storj DCS – Decentralized, official uplink CLI.
  • Backblaze B2 – Affordable object storage, official b2 CLI.

Comparison Table

Service CLI Client Encryption Free Tier Price (from) Qubes OS Ready
pCloud pcloudcmd Client-side (optional) 10 GB €4.99/mo (500 GB) Yes
MEGA mega-cmd End-to-end 20 GB €4.99/mo (400 GB) Yes
Proton Drive WebDAV / rclone End-to-end 1 GB €4.99/mo (200 GB) Experimental
Filen filen-cli End-to-end 10 GB 4.99/mo (250 GB) Yes
Tresorit rclone End-to-end 3 GB 10.42/mo (200 GB) Yes
Icedrive icedrive Client-side 10 GB €1.67/mo (150 GB) Yes
Storj DCS uplink Client-side 4.00/TiB-mo Yes
Backblaze B2 b2 Server-side 10 GB 0.005/GB-mo Yes

Detailed CLI Usage and Setup

1. pCloud with pcloudcmd

  • Install from TemplateVM: sudo dnf install pcloudcmd or download from pCloud.
  • Authenticate:
pcloudcmd --auth
  • Sync a local folder to pCloud:
pcloudcmd --upload /home/user/Documents /pCloud/Documents
  • Common issues: ssl errors—install ca-certificates. Watch out for outdated TLS ciphers in older templates.

2. MEGA with mega-cmd

  • Install:
sudo dnf install megacmd
  • Login:
mega-login your@email.com
  • Upload file:
mega-put ~/Downloads/secret.txt /Root/Secure
  • Problems: mega-cmd daemon conflicts—use mega-stop before config changes.

3. Proton Drive via WebDAV / rclone

  • Configure rclone with Proton Drive (WebDAV):
rclone config
# new remote: proton
# storage: webdav
# url: https://webdav.proton.me/drive
# vendor: other
# user: your@proton.me
# pass: 
  • Mount or sync:
rclone mount proton: ~/ProtonDrive
# or
rclone sync ~/Backup proton:Backups
  • Limitations: WebDAV can be slow no official CLI support is experimental.

4. Filen with filen-cli

  • Download filen-cli from filen.io/cli and make executable.
  • Authenticate:
filen-cli login
# enter e-mail, password, two-factor code
  • Upload folder:
filen-cli upload ~/Documents /Documents
  • Watch out: Node.js dependency—ensure you have matching libstdc .

5. Tresorit via rclone

  • rclone configuration:
rclone config
# new remote: tresorit
# type: https://tresorit.com/rclone
# client_id, client_secret from Tresorit App console
  • List vaults:
rclone lsd tresorit:
  • Common issues: API permission errors—ensure scopes include file.read and file.write.

6. Icedrive with icedrive CLI

  • Download icedrive binary from icedrive.net/cli and place in /usr/local/bin.
  • Login:
icedrive login
# follow interactive prompt
  • Mount encrypted drive:
icedrive mount ~/IceDrive
  • Problems: FUSE versions—use matching fuse-libs in TemplateVM.

7. Storj DCS with uplink

  • Install:
sudo dnf install uplink
  • Configure uplink:
uplink setup
# enter API key, satellite address, encryption passphrase
  • Upload:
uplink cp ~/wallet.pdf sj://mybucket/wallet.pdf
  • Note: Watch for clock skew ensure VM clock is synced (e.g., chronyd).

8. Backblaze B2 with b2

  • Install Python CLI:
pip3 install --user b2
  • Authorize:
b2 authorize-account  
  • Create bucket and upload:
b2 create-bucket mybucket allPrivate
b2 upload-file mybucket ~/video.mp4 video.mp4
  • Note: Network timeouts—use --max-download-speed or --max-upload-speed flags.

Which Service to Choose?

  • If you need maximum privacy with official Linux support: pCloud or Icedrive.
  • For end-to-end encryption and generous free storage: MEGA.
  • For enterprise-grade sync via trusted APIs: Tresorit with rclone.
  • If you prefer decentralized object storage: Storj DCS.
  • On a tight budget for archival: Backblaze B2.

Troubleshooting Common Issues

  • SSL/TLS errors: Install ca-certificates and update OpenSSL in your TemplateVM.
  • FUSE mounting fails: Match FUSE library versions between TemplateVM and AppVM.
  • Rate limits or 401 unauthorized: Refresh tokens or re-authenticate in each qube.
  • Clock skew: Ensure NTP is running (sudo systemctl enable chronyd).
  • Dependency conflicts: Use minimal TemplateVMs and install only the CLI tool its libs.

Conclusion

Choosing the right CLI-enabled cloud storage for Qubes OS depends on your threat model, budget, and workflow. Whether you opt for a zero-knowledge service like pCloud or a decentralized platform like Storj, the CLI approach integrates seamlessly into Qubes’ isolated qubes, giving you both security and scriptable power. Follow the setup steps above in dedicated qubes, and refer to each provider’s documentation for advanced features and updates.

Be the first to leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *