October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk9 min

How to Download Software and Files Onto Your Linux VPS

A practical Linux VPS guide to installing repository software, downloading HTTP files, copying data over SSH, verifying checksums and extracting archives safely.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use your VPS distribution’s package manager for software that is available in its repositories. Use curl or GNU Wget for a file exposed at an HTTP or HTTPS URL, and use SSH-based scp, SFTP or rsync when the source is another computer. Before you execute an unfamiliar download, verify its checksum and, when provided, its publisher’s signature.

The safest workflow is to identify the operating system, choose a non-root download directory, transfer the file with the tool suited to its source, verify it, inspect any archive, and only then install or run it.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start by identifying the VPS and the destination

Commands differ between Debian-family, RPM-family and SUSE systems. Log in over SSH and inspect the operating system before choosing an installation command.

cat /etc/os-release
uname -a

/etc/os-release normally identifies the distribution and release. uname -a shows the kernel and architecture details that can matter when selecting a binary. Also decide where the file belongs and which account should own it.

  • Use a private working directory such as ~/downloads for ordinary downloads.
  • Use a controlled application directory such as /opt/app-name only after deciding how the application will be maintained.
  • Write to protected locations such as /usr/local/bin, /var/www or /srv with sudo only when required.
  • Check free space before downloading a large archive.
mkdir -p ~/downloads
cd ~/downloads
df -h .

Downloading as an unprivileged user limits the damage from a bad URL or a mistakenly extracted file. Elevate only for the package installation or the final move into a protected path.

Install software with the native package manager

Repositories provide package metadata, dependency resolution, update paths and distribution signing policy. That is usually safer and easier to maintain than downloading an arbitrary archive when the software is already packaged.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Debian and Ubuntu: APT

Refresh the local package index, then install the package by its repository name.

sudo apt update
sudo apt install package-name

Run apt update before installing so the VPS has current metadata. APT resolves required libraries and records the package for normal system updates and removal. If a third-party repository is necessary, follow that publisher’s current instructions and store its signing key in a dedicated keyring. Configure the repository so APT can check package signatures; do not paste an unverified key into a global trust store.

Fedora, RHEL and CentOS Stream: DNF

sudo dnf install package-name

DNF handles dependencies and repository policy for RPM packages. Its download plugin can download binary or source RPMs, select a destination directory, print package URLs and resolve dependencies without installing immediately. That is useful when you need to stage packages for an offline system or review exactly what will be transferred.

SUSE: Zypper

sudo zypper install package-name

Zypper is the native client for SUSE repositories. As with APT and DNF, use configured repositories and their signature checks rather than replacing the package manager with a random web download.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When a repository package is preferable

  • You need automatic dependency handling.
  • The service should receive normal security updates.
  • You want package ownership and removal tracked by the operating system.
  • The distribution already supplies a suitable version.

A vendor archive can still be appropriate for a newer release, a statically linked utility, or software that the distribution does not package. Treat that archive as a manual installation with its own update and rollback responsibility.

Download a direct file with curl

curl can retrieve HTTP or HTTPS content, but it writes response data to standard output by default. Use -o or -O when you want a file.

Choose the local filename

curl -fL -o app.tar.gz https://example.com/releases/app.tar.gz

-o lets you choose the exact local name. The combination -fL makes HTTP errors fail and follows redirects.

curl -fLO https://example.com/releases/app.tar.gz

-O keeps the filename supplied by the remote URL. Use it when the server’s name is meaningful and safe for your directory.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Make transient failures less painful

curl --fail --location --retry 3 --output app.tar.gz https://example.com/releases/app.tar.gz

--retry 3 retries transient network failures. It does not make an unreliable or malicious source trustworthy. Check the hostname, HTTPS certificate and publisher before accepting the file. Never disable TLS verification merely to make a failed connection succeed.

Inspect the result

file app.tar.gz
ls -lh app.tar.gz

If a supposed archive is identified as HTML, the server may have returned an error page or a login screen. With -f, many HTTP error responses fail instead of being silently saved, but you should still inspect the result before extracting it.

Download with GNU Wget

Wget is file-oriented and designed for non-interactive retrieval. It supports HTTP, HTTPS and FTP, retry behavior, recursive retrieval and certificate controls.

Save under an explicit name

wget -O app.tar.gz https://example.com/releases/app.tar.gz

Use -c to continue a partial download when the server supports range requests.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
wget -c -O app.tar.gz https://example.com/releases/app.tar.gz

Use --server-response when troubleshooting headers, redirects or range support.

wget --server-response -O app.tar.gz https://example.com/releases/app.tar.gz

Keep certificate verification enabled. A certificate warning can indicate an incorrect hostname, an interception attempt, an outdated trust store or a genuinely misconfigured server. Investigate the cause instead of adding an option that disables checks.

curl or Wget?

Need curl Wget
Default output Standard output unless you provide -o or -O File-oriented retrieval
Keep the remote filename -O Use the output filename options appropriate to the command
Follow redirects -L Handled through Wget’s retrieval behavior
Resume a partial file Use curl’s transfer options and confirm server support -c, when range requests are supported
Inspect response headers Use curl’s header and verbose options --server-response
Other protocols Includes SFTP and SCP URLs with SSH-key authentication Supports HTTP, HTTPS, FTP and recursive retrieval

For a single HTTPS artifact, either tool is adequate. Choose based on the options you need and the command already standardized in your administration scripts.

Copy a file from another computer with SSH

HTTP tools pull from a URL. If the file is on your laptop, a build host or another server, use an SSH transfer tool instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Copy one file with SCP

Run this on the computer that currently has the file:

scp ./backup.tar.gz [email protected]:/srv/backups/

The destination consists of the VPS account, host and remote directory. The account must be able to write to that directory.

Use a non-default SSH port and key

scp -P 2222 -i ~/.ssh/id_ed25519 ./backup.tar.gz [email protected]:/srv/backups/

-P selects the SSH port and uppercase -P is required by SCP. -i selects the private key. Protect that key on the source computer and never copy it into a shared web or application directory.

Browse interactively with SFTP

sftp -P 2222 -i ~/.ssh/id_ed25519 [email protected]

Inside the SFTP prompt, commands such as put local-file, get remote-file, lcd (change the local directory) and cd (change the remote directory) let you inspect locations before transferring. SFTP is useful when you do not yet know the exact remote path or need to move several individual files interactively.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Synchronize directories with rsync

For repeated deployments or large directory trees, rsync avoids retransferring unchanged data and can show progress.

rsync -avP -e 'ssh -p 2222' ./site/ [email protected]:/var/www/site/

-a preserves the directory structure and common metadata, -v is verbose and -P combines progress display with partial-file handling. The trailing slash on ./site/ means “copy the contents of site”; omitting it changes the resulting directory layout. Check ownership and permissions after synchronization.

Protect credentials and private data

  • Do not transfer private keys, tokens or database credentials into a world-readable directory.
  • Use a dedicated account with only the permissions needed for the transfer.
  • Review the destination path before pressing Enter; a typo can put a secret in a public document root.
  • Afterward, inspect with ls -l and tighten permissions with chmod or ownership with chown where appropriate.

Verify a download before installing or running it

Obtain checksum and signing instructions from the same publisher that supplied the artifact. A checksum comparison detects altered or incomplete bytes; a trusted signature helps establish that the checksum list itself came from the publisher.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compare a SHA-256 checksum

sha256sum app.tar.gz

Compare the command’s output character-for-character with the publisher’s SHA-256 value. A matching hash proves the bytes match that published value, not that the download page or key was authentic.

Verify a signed checksum list

If the publisher supplies a signed hash file, first verify its GPG signature using the publisher’s trusted public key, then compare the SHA-256 value listed for your archive. Do not import a key solely because a downloaded file tells you to; obtain the key through a trusted publisher channel and check its fingerprint through an independent channel when possible.

Record provenance

For a manually installed binary, record the source URL, version, checksum and installation path. Keeping those details in an administration note makes later updates, incident response and removal much easier.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Inspect and extract archives cautiously

Do not extract an unfamiliar archive directly into a system directory. List its contents first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
tar -tf app.tar.gz

Look for unexpected absolute paths, parent-directory components such as ../, executable scripts and a top-level directory that differs from what the instructions describe. Extract into a new, controlled directory.

mkdir app-unpack
 tar -xzf app.tar.gz -C app-unpack
find app-unpack -maxdepth 2 -type f -printf '%pn' | head

Read the project’s installation instructions and identify the expected executable path before moving anything into /usr/local/bin or a service directory. If the archive includes an installer script, inspect it before execution and run it as a non-root user when the instructions allow.

Install a standalone binary deliberately

  1. Verify the archive or binary.
  2. Place it under a versioned directory such as /opt/app-name/1.2.3.
  3. Test it using its full path.
  4. Create a symlink such as /usr/local/bin/app-name only after testing, using sudo for that protected path.
  5. Document the version, checksum and rollback path.

This layout lets you switch versions by changing one symlink instead of overwriting an unknown file.

Choose the right transfer method

Situation Best starting point Reason
Software exists in the distribution repository APT, DNF or Zypper Dependencies, metadata, signatures and updates are managed together
One file is published at an HTTP or HTTPS URL curl or Wget Simple direct retrieval with redirect, retry and output controls
File is on your workstation SCP or SFTP Uses the existing SSH account and key policy
Repeated or large directory transfer rsync over SSH Resumes partial files and avoids copying unchanged data
Package must be staged without installing DNF download plugin or the equivalent package-manager workflow Can resolve dependencies and place packages in a chosen directory

Authentication also differs. HTTPS relies on certificates and may require HTTP authentication; SCP, SFTP and rsync rely on SSH keys or passwords. Archive downloads generally do not resolve dependencies, so you must account for libraries, service users, configuration and updates yourself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshoot common failures

“Permission denied” when saving

Check the current directory and account:

pwd
id
ls -ld .

Download into your home directory first. If the final destination is protected, move the verified file with sudo rather than running the entire download as root.

APT, DNF or Zypper cannot find the package

Confirm the package name and distribution release, refresh repository metadata, and inspect enabled repositories. A package may not exist for that release, may have a different name, or may require the publisher’s repository. Do not substitute an unrelated archive without checking its dependencies and signing instructions.

curl or Wget saved an error page

Use curl -fL, inspect the HTTP response and run file on the result. Confirm that authentication, redirects and the URL path are correct. An HTML login page is not the application archive you intended to install.

The download stops partway through

Retry with curl’s retry option or Wget’s -c. Resumption depends on server range support. For a directory transfer, rsync’s partial-file behavior is usually more practical than restarting every file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

TLS or certificate validation fails

Check the hostname, VPS clock, CA certificates and any corporate proxy. A validation failure is a security signal; do not disable certificate checks as a workaround.

SSH transfer fails

Verify the host, port, username, key permissions and destination write access. Test the connection without a transfer:

ssh -p 2222 -i ~/.ssh/id_ed25519 [email protected]

Once login works, retry SCP, SFTP or rsync with the same host, port and key.

The checksum does not match

Do not execute the file. Check whether the download was truncated, whether you selected the correct architecture and version, and whether the publisher lists a different artifact hash. Download again over a verified connection; if the mismatch persists, contact the publisher or choose another authenticated source.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A repeatable, low-risk workflow

  1. Identify the distribution, release and architecture with /etc/os-release and uname -a.
  2. Choose a non-root working directory and check available disk space.
  3. Use APT, DNF or Zypper when the software is packaged.
  4. For a URL, select curl or Wget and use explicit output, redirect and failure options.
  5. For a file on another machine, use SCP/SFTP; use rsync for repeated directory synchronization.
  6. Check the downloaded file type and size.
  7. Verify the SHA-256 checksum and, when available, the signed checksum list.
  8. Inspect archive contents before extraction.
  9. Install or move the verified result with the least privilege necessary.
  10. Record the source, version, checksum and path so the next update is reproducible.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

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

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.