Windows 10 now has OpenSSH built in.
Get an admin command prompt
Open PowerShell as an Administrator.
Check available versions
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start server and enable at boot
Set-Service -Name sshd -StartupType 'Automatic'
Find your Windows IP address
On your remote (Linux) machine, find your IP address.
Create a public SSH key
Copy public key from local (Windows) to remote (Linux) machine so you don't have to type in a password all the time.
Note that ssh-copy-id is not currently available on Windows.
cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
Do the same on your Linux machine (Note, ssh-copy-id does not work)
ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
The method above did not work for me, so I ended up manually SCPing the public key over and pasting it into the C:/Users/YOU/.ssh/authorized_keys file.
That still did not work, so I had to modify the sshd_config file.
Match User YOU
Create a password on Windows if you don't already have one
System Settings...Sign-in options
-- Note, you can still disable the Windows login screen by a) Setting the 'Require sign-in' option to never and b) Using the 'netplwiz' command and unticking the 'Users must enter password...' checkbox.
Now you should be able to SSH or SCP from your Linux machine
scp FILE WINDOWS_IP:C:/Users/YOU/Desktop