- WinSCP Technical Requirements
- Server Requirements
- SFTP Requirements
- SCP Requirements
- Using WinSCP with Restricted Shell Environments
- Effect of Remote User Environment on WinSCP Sessions
- Client Requirements
- WinSCP Downloads
- Download latest WinSCP 5.17
- Portable executables
- .NET assembly / COM library
- Source code
- Download WinSCP 5.18 RC
- Installing SFTP/SSH Server on Windows using OpenSSH
- Installing SFTP/SSH Server
- On Windows 10 version 1803 and newer
- On earlier versions of Windows
- Configuring SSH server
- Setting up SSH public key authentication
- Connecting to the server
- Finding Host Key
- Connecting
- Top 7 Free SFTP or SCP Clients for Windows (Transfer Files to Linux)
- 1. WinSCP
- 2. PSCP and PSFTP (from PuTTY)
- 3. Filezilla
- 4. FireFTP
- 5. CoreFTP LE
- 6. Swish – SFTP from Windows Explorer
- 7. BitKinex
WinSCP Technical Requirements
Server Requirements
Using WinSCP, you can connect to an SSH (Secure Shell) server with SFTP (SSH File Transfer Protocol) or SCP (Secure Copy Protocol) service, to an FTP (File Transfer Protocol) server or HTTP server with WebDAV service.
For FTP , both the basic unencrypted variant and FTPS are supported. Compressed transfers (Zlib) are not supported.
For WebDAV, both the basic unencrypted variant and WebDAVS are supported. Compressed transfers (Zlib) are not supported.
SFTP Requirements
For SFTP, the only requirement beyond the server requirements above is to run SFTP on the server. It is best to run it as an SSH-2 subsystem. If you select SFTP-only on the Login dialog and the SFTP subsystem is not found, WinSCP will try to find the SFTP server in some common directories ( /usr/lib/sftp-server , /usr/local/lib/sftp-server , etc.). This way, it is possible to use SFTP even with SSH-1, which does not support subsystems.
SCP Requirements
As the SCP protocol implements file transfers only, WinSCP must use other means to implement the additional functionality (like directory listing). WinSCP uses Unix-like shell commands to do that. This in turn means that when using the SCP protocol, it can connect to servers that run Unix-like or its emulation only.
To transfer files, scp1 is used (it is called from within scp ). If only scp2 is allowed on your server, check the Use scp2 with scp1 compatibility option on the SCP/Shell page on the Advanced Site Settings dialog.
For correct functionality, you must do the following. The bash shell is recommended for working with WinSCP. If your default shell doesn’t work with WinSCP, you can make WinSCP use other shell.
For its operation, WinSCP needs several commands: cd , chgrp , chmod , chown , echo , groups , ls , mkdir , mv , pwd , scp , rm , ln , unalias and unset . These commands have to be placed in the path and the user must have sufficient permissions to execute them. WinSCP expects “standard” behavior of these commands. You can avoid needing these commands by not using some of the WinSCP functions ( mkdir , chown , ln , etc.) or by changing some configuration options ( groups , unalias and unset ).
Just after establishing the connection with a server, all aliases on the above commands are cleared. This helps avoid unexpected behavior.
Another precondition is that the output of all commands be in English. This mostly concerns names of months in directory listings ( ls -la ). Because of this, WinSCP clears all user variables that govern command output after login. If command output also reflects some other server settings, it may be necessary to change this before WinSCP can be used.
The last necessary condition is the proper output of the ls -la command, particularly the standard number and ordering of the columns. If the default output does not satisfy the needs of WinSCP you can use Listing command option on the SCP/Shell page on the Advanced Site Settings dialog to modify it.
WinSCP will attempt detect support for the —full-time switch of the ls command. If the detection causes you problems, you can disable it.
Using WinSCP with Restricted Shell Environments
A number of restricted shell environments exist for supporting SFTP/SCP only accounts. These systems restrict an user to a small subset of commands needed to manipulate files, while denying an ability to execute arbitrary commands. Some of these environments create incompatibilities with WinSCP, particularly if using SCP.
Effect of Remote User Environment on WinSCP Sessions
Most shells nowadays offer options to make the user experience better. Unfortunately many of these options make the shell incompatible with WinSCP.
This mainly affects the SCP protocol. An example is colorized output from the ls command that includes ANSI color sequences which WinSCP cannot parse.
Also, the SFTP protocol can be affected. A typical example is where some message is printed from a start-up script. WinSCP (and any other SFTP client) will attempt to parse the message as an SFTP packet, which will obviously fail.
You should configure your start-up scripts to conform to non-interactive sessions (like WinSCP). Some shells call different profile/start-up scripts for interactive and non-interactive sessions. You can also use some environment variables, such as TERM to distinguish interactive and non-interactive sessions.
Client Requirements
WinSCP runs on Microsoft Windows XP SP2/Windows Server 2003 SP1 and newer, up to Windows 10/Windows Server 2019. The application installer does not run on Windows Vista/2008 and older (the installer of the latest beta version needs Windows 7 SP1/2008 R2 SP1). If you need to use WinSCP on an older version of Windows, use Portable executables download. WinSCP runs both on client and server editions of Microsoft Windows. We know of no reason why WinSCP should not continue to work on future versions of Microsoft Windows.
While there is 32-bit version of WinSCP available only, it runs on 64-bit editions of Microsoft Windows.
On Windows Server, WinSCP runs both in “Server with Desktop Experience” (“Server with a GUI ”) and “Server Core” installation options.
We take care to make WinSCP an accessible application, particularly to visually impaired people. WinSCP can be used on systems with screen readers.
WinSCP Downloads
Download latest WinSCP 5.17
WinSCP 5.17 is a major application update. New features and enhancements include:
- Improvements to sessions and workspace management, so that WinSCP can now easily restore tabs that were open when it was last closed.
- Hardware-accelerated AES .
- Extension Archive and Download to archive remote files and download the archive.
- Improvements to Synchronization checklist window.
- Allowed sorting of find results.
- SSH core upgraded to PuTTY 0.73.
- The binaries are signed with new EV certificate valid until February 2023.
- Download WinSCP 5.17.10 (10.6 MB) 3,463,381 downloads since release
What is this?
- List of changes
Portable executables
8.7 MB
61,776 downloads since release
.NET assembly / COM library
8.7 MB
4,876 downloads since release
Source code
13.6 MB
1,211 downloads since release
Download WinSCP 5.18 RC
The most important changes/additions are:
- A complete list of files that are queued for a transfer can be shown.
- A streaming support in scripting and .NET assembly.
- An extension for synchronizing two remote servers.
- Enabled TLS 1.3 and added support for SHA-256 TLS/SSL fingerprints.
- Download WinSCP 5.18.3 RC (10.8 MB) 3,621 downloads since release
- List of changes
Installing SFTP/SSH Server on Windows using OpenSSH
Recently, Microsoft has released a port of OpenSSH for Windows. You can use the package to set up an SFTP /SSH server on Windows.
Installing SFTP/SSH Server
On Windows 10 version 1803 and newer
- In Settings app, go to Apps > Apps & features > Manage optional features.
- Locate “OpenSSH server” feature, expand it, and select Install.
Binaries are installed to %WINDIR%\System32\OpenSSH . Configuration file ( sshd_config ) and host keys are installed to %ProgramData%\ssh (only after the server is started for the first time).
You may still want to use the following manual installation, if you want to install a newer version of OpenSSH than the one built into Windows 10.
On earlier versions of Windows
- Download the latest OpenSSH for Windows binaries (package OpenSSH-Win64.zip or OpenSSH-Win32.zip )
- As the Administrator, extract the package to C:\Program Files\OpenSSH
- As the Administrator, install sshd and ssh-agent services:
Configuring SSH server
- Allow incoming connections to SSH server in Windows Firewall:
- When installed as an optional feature, the firewall rule “OpenSSH SSH Server (sshd)” should have been created automatically. If not, proceed to create and enable the rule as follows.
- Either run the following PowerShell command as the Administrator:
Replace C:\System32\OpenSSH\sshd.exe with the actual path to the sshd.exe ( C:\Program Files\OpenSSH\ssh.exe , had you followed the manual installation instructions above). - or go to Control Panel > System and Security > Windows Defender Firewall1> Advanced Settings > Inbound Rules and add a new rule for port 22.
- Start the service and/or configure automatic start:
- Go to Control Panel > System and Security > Administrative Tools and open Services. Locate OpenSSH SSH Server service.
- If you want the server to start automatically when your machine is started: Go to Action > Properties. In the Properties dialog, change Startup type to Automatic and confirm.
- Start the OpenSSH SSH Server service by clicking the Start the service.
Setting up SSH public key authentication
Follow a generic guide for Setting up SSH public key authentication in *nix OpenSSH server, with the following difference:
Connecting to the server
Finding Host Key
Before the first connection, find out fingerprint of the server’s host key by using ssh-keygen.exe for each file.
In Windows command-prompt, use:
Replace %WINDIR%\System32 with %ProgramFiles% , if appropriate.
In PowerShell, use:
Replace $env:WINDIR\System32 with $env:ProgramFiles , if appropriate.
You will get an output like this:
Connecting
Start WinSCP. Login dialog will appear. On the dialog:
- Make sure New site node is selected.
- On New site node, make sure the SFTP protocol is selected.
- Enter your machine/server IP address (or a hostname) into the Host name box.
- Enter your Windows account name to the User name box. It might have to be entered in the format user@domain , if running on a domain.
- For a public key authentication:
- Press the Advanced button to open Advanced site settings dialog and go to SSH > Authentication page.
- In Private key file box select your private key file.
- Submit Advanced site settings dialog with the OK button.
- For a password authentication:
- Enter your Windows account password to the Password box.
- If you Windows account does not have a password, you cannot authenticate with the password authentication (i.e. with an empty password), you need to use the public key authentication.
- Save your site settings using the Save button.
- Login using Login button.
- Verify the host key by comparing fingerprint with those collected before (see above).
If you cannot authenticate to the server, and you are using Windows 10 Developer mode, make sure that your OpenSSH server does not conflict with an internal SSH server used by the Developer mode. You may need to turn off the SSH Server Broker and SSH Server Proxy Windows services. Or run your OpenSSH server on a different port than 22.
Top 7 Free SFTP or SCP Clients for Windows (Transfer Files to Linux)
Most organizations run Linux servers for their enterprise databases and applications. However the developers and admins might have Windows laptops. In those cases, you might be using PuTTY (or related tools like PuttyCM) to ssh from Windows to Linux.
You might also want to transfer files from Windows to Linux and vice versa. You can use any one of the free SFTP clients mentioned in this article.
Even if you are already using some SFTP client, check-out these tools, you might end-up liking one of these sFTP clients better than your current one.
Did we miss any of your favorite SFTP or SCP client?
1. WinSCP
WinSCP Supports SFTP, SCP and FTP. This is the best and efficient SFTP and SCP graphical tool for Windows. Following are few features of WinSCP.
- Its integrated well with Windows using the drag and drop feature. From Windows Explorer, you can right mouse click on a file, select “Send To”, and transfer the file to remote Linux server.
- Apart from GUI, WinSCP also provides a command line interface to transfer files.
- If you frequently connect to multiple servers, you can store those session information (ip-address, username) in WinSCP. Storing the password is not recommended.
- You can automate the file transfer by writing scripts in WinSCP.
- WinSCP can monitor a local directory for changes and automatically sync with the remote directory.
- WinSCP is open source.
2. PSCP and PSFTP (from PuTTY)
PuTTY is used to SSH from Windows to Linux. Apart from the SSH client, PuTTY also has both SCP and SFTP client. It is called PSCP and PSFTP. Just like PuTTY, these are very light weight, easy to use, reliable, and open source.
Please note that PSCP and PSFTP are just command-line tools without any GUI.
Note: If you are using PuTTY, don’t forget to check-out these PuTTY tips, and 12 powerful PuTTY Add-ons.
3. Filezilla
FileZilla is a GUI tool that supports FTP, FTPS and SFTP. Following are some of the features.
- It is cross platform and works on Windows, Linux and Mac OS.
- Filezilla is open source.
- Supports IPv6.
- You can drag and drop files.
- Edit remote files directly from Filezilla.
- Compare local and remote directory contents.
4. FireFTP
FireFTP is a FTP addon for Firefox, which can also do SFTP.
To use SFTP in FireFTP, from Firefox browser, click on Tools -> FireFTP -> From the drop-down list, select either “Quick Connect” or “Create an Account” -> In the “Main” tab, enter the ip-address, uid, and pwd for the Linux server -> Click on “Connection” Tab -> Click on “Security” drop-down list and select “SFTP” from here, as shown below.
5. CoreFTP LE
CoreFTP is a commercial product that has both Pro and Free version. The free version pretty much has every feature that you would need for your typical SFTP file transfer needs.
- Drag and drop support.
- You can stop and resume the file transfer.
- File transfer bandwidth can be controlled
- command line mode is available
6. Swish – SFTP from Windows Explorer
This is very different from all other SFTP clients. This integrates directly to your Windows Explorer. You can just browse remote files from your Windows Explorer directly, and drag and drop files to transfer it.
Please note that this is still in “alpha” stage.
Once you’ve installed it, do the following to create a remote SFTP connection from the Windows Explorer:
- On Windows XP -> My Computer -> Click on Swish Icon -> Tools menu bar -> Add SFTP Connection.
- On Windows 7 -> Click on “Computer” in your Windows Explorer -> Click on Swish Icon -> Click on “Add SFTP Connection”.
7. BitKinex
BitKinex is a freeware SFTP Clienit. Following are some of the features.
- Uses multipart and multithreaded file transfer for speed.
- Support FTP, FTPS, SFTP, HTTP, HTTPS and WebDAV protocols.
- Supports server-to-server file transfer.
- Command line interface to transfer files
What is your favorite SFTP or SCP clients for Windows? Please leave a comment and let us know.