How to Transfer Files from Windows 10 to Linux Over SSH

You can transfer files from Windows 10 to Linux over SSH with the built-in scp command, or use WinSCP if you prefer a graphical interface. The command-line method is quickest for one-off copies and scripts; WinSCP is easier when you want to browse local and remote folders side by side.

Before you start, the Linux computer must be running an SSH server and you need its hostname or IP address, your Linux username, and a destination directory you can write to. On Ubuntu, the server package is openssh-server; Canonical documents the setup in its OpenSSH server guide. SSH normally listens on port 22 unless the server administrator changed it.

Method 1: Copy files with SCP in PowerShell

Windows 10 supports Microsoft's OpenSSH client, which includes ssh, sftp, and scp. It may not be installed on every Windows 10 system, so first open PowerShell and run:

Get-Command scp

If PowerShell cannot find the command, install the OpenSSH Client from Windows Optional Features or run the following in an elevated PowerShell window:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Microsoft lists the OpenSSH components and installation methods in its OpenSSH installation documentation.

1. Test the SSH connection

Before copying anything, confirm that Windows can reach the Linux machine:

ssh alex@192.168.1.50

Replace alex and 192.168.1.50 with your Linux username and server address. On the first connection, SSH displays the server's host-key fingerprint. Verify that fingerprint with the server or administrator before accepting it; do not approve an unexpected key blindly.

2. Copy one file

Move to the Windows folder containing the file, or provide the full path. For example:

cd "C:\Users\Alex\Documents"

Then copy the file to Linux:

scp report.pdf alex@192.168.1.50:/home/alex/Downloads/

PowerShell transferring report.pdf from Windows 10 to a Linux Downloads folder with scp
PowerShell can send a local file directly to a Linux path through an SSH connection.

If the SSH server uses a nonstandard port, use capital -P, for example scp -P 2222 report.pdf alex@192.168.1.50:/home/alex/Downloads/. The current OpenSSH scp manual documents -P for the remote port and notes that modern OpenSSH releases use SFTP for scp transfers by default while keeping the familiar command syntax.

3. Copy an entire folder

Add -r to copy a directory and everything beneath it:

scp -r Project alex@192.168.1.50:/home/alex/

PowerShell using scp -r to copy a Project folder from Windows to Linux
The -r option recursively copies the selected folder and its contents.

Quote Windows paths that contain spaces, such as scp -r "C:\Users\Alex\My Project" alex@192.168.1.50:/home/alex/.

Method 2: Transfer files with WinSCP

If you prefer a GUI, install WinSCP from its official site and create a new session. Choose SFTP as the file protocol, enter the Linux hostname or IP address, keep port 22 unless your server uses another port, and provide the Linux username. WinSCP's own protocol documentation recommends SFTP where possible; its SCP mode is retained mainly for compatibility with older servers.

WinSCP login window configured for SFTP to a Linux server at 192.168.1.50 on port 22
Use SFTP in WinSCP for a normal SSH file-transfer session.

Click Login. On the first connection, compare the displayed host-key fingerprint with the expected fingerprint before trusting it. WinSCP explains the required hostname, protocol, username, and password in its connection guide.

After you connect, the default Commander-style interface shows Windows files on the left and the Linux server on the right. Browse to the destination folder, then drag a file or folder from the local pane to the remote pane. Confirm the transfer options if WinSCP prompts you.

WinSCP dual-pane interface copying report.pdf from Windows Documents to a Linux Downloads folder
Drag files from the Windows pane to the Linux pane to upload them over SFTP.

Common problems

  • scp is not recognized: install or enable the Windows OpenSSH Client, then reopen PowerShell.
  • Connection refused or timed out: check that sshd is running on Linux, the hostname or IP is correct, the SSH port is reachable, and the firewall allows it.
  • Permission denied: confirm the username, password or SSH key, and make sure the Linux account can write to the destination directory.
  • Remote path not found: use an existing Linux path and remember that Linux paths use forward slashes and are case-sensitive.

For most Windows 10 users, scp is the fastest option when you already know the destination path. WinSCP is the better choice when you want to browse folders visually, and SFTP should be the default protocol for a modern SSH server.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.