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

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The safest way to upload a site to a VPS is to connect over SSH, confirm the server identity, and then choose the transfer method that matches the job: SFTP for interactive or graphical uploads, SCP for a quick one-time copy, and rsync for repeat deployments that synchronize a directory. Before any command, collect the VPS IP address, login username, authentication method, destination directory and the exact local files you intend to publish.

What you need before uploading

A file-transfer command cannot determine your deployment layout for you. Have these details ready:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • A running VPS and reachable IP address. Use the public address assigned to the server, not a local-network address.
  • A login account. You need the remote username and either an SSH private key or password. SSH keys are the preferred authentication method for server access.
  • The SSH port. Port 22 is the usual default, but a hardened server may use another port.
  • The web root or deployment directory. Paths differ by operating system, web server and hosting image. Do not assume /var/www/html; inspect the server configuration and confirm that your account can write to the intended directory.
  • A local copy of the site. If the project uses a framework or bundler, build it first and upload the generated output directory rather than development source files unless the server is designed to build the project.

Keep a clear distinction between source and publishable files. A typical workflow is to edit source locally, run the project’s production build, review the resulting directory, and transfer only that directory to the VPS.

Choose SFTP, SCP or rsync

Method Best use Useful controls Main caution
SFTP Interactive work, browsing a remote directory or using a graphical client -i for a private key, -P for a port, -r for recursive directory upload, and the interactive put command Navigation and repeated uploads are more manual
SCP A quick one-off file or directory copy -i, capital -P, recursive -r, and -p to preserve times and modes It is not as convenient for incremental directory synchronization
rsync Repeated deployments where the destination should mirror a local directory Archive mode, compression, dry runs, include/exclude rules and optional deletion A wrong source path or careless --delete can remove remote files

All three use SSH transport when invoked in their normal VPS forms, so they avoid unencrypted FTP credentials and file transfers. Select one method for the immediate task rather than trying to combine commands unnecessarily.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Test SSH access and verify the host key

Test the connection before attempting a transfer. This separates authentication, networking and permissions problems from file-transfer problems.

ssh -i ~/.ssh/id_ed25519 user@203.0.113.10

If your key is the default key selected by your SSH configuration, the shorter form works:

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

The connection requires the server IP, username and authentication method. On a first connection, SSH displays the server’s host-key fingerprint. Compare that fingerprint with a value obtained through a trusted administrative channel before accepting it.

Never dismiss a changed-host-key warning automatically. A rebuild that reuses the same IP can legitimately produce a new key, but an unexpected change can also indicate that you are connecting to the wrong machine or facing a man-in-the-middle attack. Confirm the server identity first; only then remove or replace an old entry in your local known_hosts file.

After login, check the destination and your write access:

pwd
ls -la /var/www/site
touch /var/www/site/.upload-test
rm /var/www/site/.upload-test

Use a temporary test file only if the directory is safe for it, and remove it immediately. If the commands fail with “permission denied,” solve ownership or group permissions before uploading production files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Upload with SFTP

SFTP is an interactive file-transfer program that performs operations over an encrypted SSH connection. It accepts destinations in the form [user@]host[:path], supports a private key with -i, and can recursively upload directories with -r. Unlike SCP, recursive SFTP traversal does not follow symbolic links.

Upload a directory interactively

  1. Start SFTP with the key and account you tested:
sftp -i ~/.ssh/id_ed25519 user@203.0.113.10
  1. Change to the remote deployment directory:
sftp> cd /var/www/site
  1. Upload the local site directory recursively:
sftp> put -r ./site
  1. End the session:
sftp> bye

The command above creates or updates a directory named site under the remote directory. If you instead want the contents of a local build directory placed directly into the current remote directory, enter the local directory and upload its files individually, or use a synchronization-oriented tool such as rsync. Always list the destination afterward to confirm the resulting layout.

Upload one file

You can connect directly to a remote path and then upload a single file:

sftp user@203.0.113.10:/var/www/site
sftp> put index.html
sftp> bye

Use the key option when the server does not accept your default key:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sftp -i ~/.ssh/id_ed25519 user@203.0.113.10:/var/www/site

Use a graphical SFTP client

A graphical client is useful when you are new to command-line tools or need to inspect local and remote folders side by side. DigitalOcean’s transfer guidance recommends FileZilla for newer users. Enter the VPS IP address, port 22 unless your server uses another port, username and private-key file, then connect. Select the local files and choose Upload into the verified remote directory.

Even with a GUI, apply the same security checks: verify the host key, avoid uploading private configuration files, and confirm ownership and permissions on the VPS after the transfer.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Upload with SCP

SCP is convenient when you know the source and destination and want one command. Use lowercase -r for a directory, capital -P for a nonstandard SSH port, -i for a particular key and -p when preserving source file times and modes matters.

Copy a website directory

scp -i ~/.ssh/id_ed25519 -r ./site user@203.0.113.10:/var/www/site

This copies the local site directory to the specified remote location. For a custom SSH port, add the capitalized port option:

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.
scp -P 2222 -i ~/.ssh/id_ed25519 -r ./site user@203.0.113.10:/var/www/site

To preserve modification times and modes while copying, add -p:

scp -p -i ~/.ssh/id_ed25519 index.html user@203.0.113.10:/var/www/site/

Understand directory and symlink behavior

Trailing-slash and source-path semantics determine whether the destination receives the directory itself or its contents. For example, copying ./site and copying ./site/ can produce different layouts depending on the command and destination. Make the intended path explicit, then log in and inspect it rather than assuming the files landed where the web server expects them.

SCP follows symbolic links during recursive copying, whereas SFTP does not follow them during recursive traversal. If your site contains links to shared assets, decide whether you need the linked target copied as real files, the link recreated, or the linked path excluded.

Since OpenSSH 9.0, scp has used the SFTP protocol for transfers by default. The command remains useful for its concise copy syntax, but do not infer that its path and symlink semantics are identical to an interactive SFTP session.

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.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Synchronize deployments with rsync

Use rsync when you deploy the same site repeatedly and want a directory synchronization command rather than a one-off copy. It can transfer only the changes needed to bring the destination in line with the local tree, and its options support archive behavior, compression, dry runs and include/exclude rules.

Start with a conservative synchronization

rsync -avz ./site/ user@203.0.113.10:/var/www/site/
  • -a requests archive-style recursive copying and preservation of relevant file attributes.
  • -v prints the files and actions rsync is processing.
  • -z enables compression during the transfer.
  • The trailing slash in ./site/ means “copy the contents of this directory.”

If you omit the trailing slash and use ./site, you are asking rsync to copy the directory itself. That distinction is critical: a mistaken choice can leave you with /var/www/site/site instead of the intended files directly under /var/www/site.

Preview changes before using deletion

To make the remote tree exactly match the local tree, rsync provides --delete:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
rsync -avz --delete ./site/ user@203.0.113.10:/var/www/site/

--delete removes remote files that are absent locally. That is useful for removing obsolete JavaScript bundles, but dangerous if the source directory is incomplete or the path is wrong. Preview the operation first:

rsync -avz --delete --dry-run ./site/ user@203.0.113.10:/var/www/site/

Read the dry-run output line by line, verify the source and destination, and keep a backup of the current remote site before applying destructive changes. The exact behavior and available flags can vary with the rsync version installed on your systems, so consult the local manual with man rsync.

Exclude files that do not belong on the server

Never synchronize secrets, local dependency caches or source-control metadata merely because they exist in the project directory. Use rsync’s include and exclude controls to send only the production output and required assets. A safer pattern is to point rsync at a dedicated build directory that contains no development-only files; this avoids relying on a long exclusion list during every deployment.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

A repeatable deployment workflow

  1. Build locally. Run the project’s documented production build and identify the resulting publish directory.
  2. Review the output. Confirm that the expected index document, stylesheets, scripts, images and web-font files are present. Remove development secrets and local-only files.
  3. Test SSH independently. Connect with the intended username and key, verify the host fingerprint and confirm the destination path.
  4. Choose the transfer tool. Use SFTP for manual browsing, SCP for a one-time copy, or rsync for recurring synchronization.
  5. Run a non-destructive transfer first. With rsync, use --dry-run; with SFTP or SCP, upload to a temporary directory if you need to inspect the result before publishing.
  6. Publish to the correct directory. Ensure the web server’s configured document root points to the directory you updated, not a similarly named parent or child directory.
  7. Check permissions and ownership. The web-server account must be able to read the files and traverse every parent directory.
  8. Verify the site externally. Request the site over HTTPS, inspect the browser’s network panel for missing assets, and review web-server logs for permission or routing errors.
  9. Handle caches last. If a service worker or CDN is involved, purge or version caches only after confirming that the correct files exist on disk.

Verify the upload on the VPS

Log in and inspect the destination rather than trusting a successful client exit message alone:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
ssh -i ~/.ssh/id_ed25519 user@203.0.113.10
ls -la /var/www/site
find /var/www/site -maxdepth 2 -type f | sort

Check the following points:

  • The expected index file is at the document root the web server serves.
  • Static assets use the paths referenced by the HTML and CSS.
  • Ownership and mode bits allow the web-server user to read files and traverse directories.
  • No private keys, environment files or local build caches were uploaded.
  • The HTTPS response serves the new version, not an old cached response.

If the browser reports missing files, compare the URL path and capitalization with the names on disk; case-sensitive Linux filesystems commonly expose mismatches that were hidden during local development.

Troubleshoot common failures

“Permission denied” during upload

The account may not own the web root or belong to its group. Upload into a directory your account controls, then arrange an appropriate ownership and group-permission policy with the server administrator. Avoid making the entire web root world-writable; that creates a security problem rather than fixing deployment.

“No such file or directory”

Recheck both sides of the command. The local path is interpreted by your shell, while the remote path is interpreted on the VPS. Log in, use pwd and ls to confirm the remote directory, and quote paths containing spaces.

The files appear one directory too deep

This is usually a trailing-slash or source-directory issue. Inspect whether the server contains /var/www/site/index.html or /var/www/site/site/index.html. Correct the source and destination paths, then repeat the transfer after deciding whether you want the directory itself or its contents.

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

SSH asks for a password even though a key was supplied

Confirm that the private-key path is correct and that the matching public key is installed for the same remote username. Check local key permissions and use the same -i option with ssh, SFTP and SCP while diagnosing. A key accepted for one account is not automatically accepted for another.

rsync proposes deleting unexpected files

Stop and rerun with --dry-run. Confirm that the local directory is complete, that the trailing slash expresses the intended contents-versus-directory behavior, and that the destination is the correct site. Do not apply --delete until every proposed removal is understood and a backup exists.

The transfer succeeds but the website is unchanged

Verify the active virtual host or server block’s document root, then check ownership, permissions and the actual HTTPS response. A CDN, reverse proxy or service worker can continue serving cached assets; purge or version that cache only after the files on disk are correct.

Which command should you use?

  • Choose SFTP when you want to browse directories, upload a few files manually or use a graphical interface.
  • Choose SCP when the source and destination are known and you need a concise one-time copy.
  • Choose rsync when deployments repeat, transfer size matters, or you need a previewable synchronization with explicit include, exclude and deletion controls.

Whichever method you select, the reliable process is the same: authenticate over SSH, verify the host identity, target the confirmed document directory, inspect the uploaded files, and test the live HTTPS response before declaring the deployment complete.

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

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.