WinSCP

WinSCP

FTP Clients - Freeware

Description

There is a screenshot of WinSCP from 2004 floating around the internet, and if you put it next to a screenshot from 2026, you would have to squint to tell the difference. The icons are a little different. The toolbar contains a few more buttons. The fonts might have changed. But the basic layout — two panes, local files on the left, remote files on the right, a connection dialog that looks like it was designed for Windows 98 — has not changed meaningfully in more than two decades. This is either a testament to the original design being perfect or evidence that nobody wants to touch the UI code. I suspect it is both.

I learned about WinSCP in 2011 because some web hosting tutorial told me to. I was nineteen, struggling to upload my first website — a terrible portfolio consisting of some tables of HTML and inline CSS — to a shared hosting account I had bought for $3.99 a month from a company that no longer exists. The tutorial said “download WinSCP, enter your FTP credentials, and drag your files to the remote panel.” I did exactly that. The files popped up on the server.

I typed my domain into a browser and my terrible website was live. The whole thing took less than five minutes, most of which was me mistyping the hostname because I kept mistaking “ftp” for “sftp.” That was fourteen years ago, and WinSCP is still installed on every Windows machine I have. Not because I haven’t tried alternatives. Because I keep coming back.

WinSCP was developed by a Czech developer, Martin Prikryl, and was first released in 2000. The name stands for “Windows Secure Copy,” which refers to SCP — the Secure Copy Protocol that runs over SSH. But to call WinSCP just an SCP client is like calling a Swiss Army knife just a blade. It supports SCP, SFTP, FTP, FTPS, WebDAV, Amazon S3 and as of recent versions, Azure Blob Storage. It is a file transfer client that supports pretty much every protocol you would need to transfer files between a Windows machine and a remote server.

It is open source, licensed under GPL, and totally free. There is no paid tier. There is no “Pro” version with additional features. There is no subscription. Martin Prikryl has been developing and maintaining this software for twenty-five years, mostly by himself, and the only monetization is an optional donation and a book about WinSCP that he sells on the website. Twenty-five years of sustained development funded mainly by goodwill. That fact alone earns my respect.

The two-panel interface is the reason most people use WinSCP and the reason some people refuse to. It works like an old school file manager — Norton Commander style, for anyone old enough to remember. Your local filesystem is on the left. The remote server is on the right. You navigate both sides separately, select files, and drag them across. Upload is left to right. Download is right to left. It is spatial and intuitive in a way that command-line SCP never will be.

I have taught complete beginners to use WinSCP in less than two minutes. “Your stuff is on the left. The server is on the right. Drag.” That is the entire tutorial. There is also an Explorer-style interface showing only the remote filesystem and integrated with Windows drag-and-drop, but in six years of trying it occasionally I always switch back to the Commander interface within a day. Two panes is what file transfer should look like. I will die on this hill.

The connection manager is where you spend the first thirty seconds of every session, and it is functional but cluttered. You enter the hostname, port, username and select your protocol. For SFTP connections — which should be the default for anything in 2026 — you can authenticate using a password or an SSH key. WinSCP has native support for the PPK key format of PuTTY, which is important because if you’re using WinSCP on Windows, there’s a very good chance you’re also using PuTTY, and not having to convert keys between formats is a step that shouldn’t have ever been a step. You can also import OpenSSH keys directly.

The saved sessions list contains your connections with all their settings, which in the long run becomes a personal directory of all the servers you’ve ever accessed. I have forty-three saved sessions in my WinSCP right now. Some of them are for servers that no longer exist. I keep them like bookmarks to dead websites — they are not useful anymore, but deleting them is like throwing away a phone number.

Transfer speed is one of those things you do not think about until it is a problem. WinSCP is not the fastest SFTP client. In benchmarks — and yes, people benchmark file transfer clients — FileZilla and Cyberduck sometimes edge it out on raw throughput, particularly on large single-file transfers over high bandwidth connections. The difference is usually marginal — maybe 5 to 10 percent — and for the kind of work most people do with WinSCP, it is imperceptible. Where I have seen slowness is with transfers of thousands of small files.

Uploading a WordPress installation with its 2,000-plus files takes longer in WinSCP than in FileZilla, because each file requires a separate SFTP operation and WinSCP’s overhead per operation is slightly higher. For a once-in-a-lifetime deployment, this is a minor annoyance. For someone doing this every day, it may be important. I once uploaded a photo archive (14 000 jpegs) to a backup server and it took more than ninety minutes. The same transfer in FileZilla took about seventy. Not a dealbreaker, but noticeable enough that I timed it.

The scripting and automation capabilities are where WinSCP punches absurdly above its weight for a free tool. WinSCP includes a built-in command-line interface and .NET assembly which can be invoked from PowerShell, C#, or any .NET language. You can write scripts that connect to a server, upload certain files, download certain files, synchronize directories, rename remote files, and disconnect — all without any interaction with a GUI. At work, I have a PowerShell script that is run every night at 2AM on a small Windows server.

It uses an SFTP connection to an SFTP server at a vendor’s site, downloads any new CSV files from a specific directory, copies them to a local processing folder, and records the entire operation in a text file. This script has been running reliably for three years. I wrote it in forty minutes using examples from WinSCP’s documentation, which is by the way, some of the best documentation I have ever read for any software, commercial or open-source. Every feature is documented. Every parameter is explained. Every common scenario is provided with a code example. Martin Prikryl apparently thinks that if you are going to give software away for free, you should at least make sure people know how to use it.

The synchronization feature is underrated and has saved me from mistakes more times than I can count. You choose a local directory and a remote directory, and WinSCP compares them — by timestamp, by file size, or both — and displays to you exactly which files are different. You can then decide to either upload newer local files, download newer remote files, or synchronize both ways. Before it executes, it displays a preview of all files that will be transferred or deleted.

That preview has prevented me from accidentally overwriting production files at least three times. Once, I was going to push a local build to a staging server and the synchronization preview indicated that I would be overwriting a configuration file that my colleague had updated remotely two hours before. Without that preview, I would have erased his changes and neither of us would have noticed until something broke in testing.

The built-in text editor is minimal and functional. You can open any remote text file, edit it in a basic editor with syntax highlighting, save it and WinSCP automatically uploads the changed version back to the server. For quick edits to config files — changing a line in an nginx.conf, fixing a typo in a .env file, changing a cron schedule — this is faster than downloading the file, opening it in a local editor, making an edit, saving, and re-uploading.

You can also set up WinSCP to use an external editor — I have mine set to Notepad++ — so that if you double-click on a remote file it will open in a proper editor with full features, and if you save in Notepad++ it will automatically upload. This workflow is seamless after configuration and is one of those small quality-of-life features that you do not appreciate until you switch to a client that does not have it and suddenly editing remote files is a four-step process again.

There are things that WinSCP does not do well, and I should be honest about them.

The interface, as I said, is dated. Not in a charming retro way. In a “this was designed when 1024×768 was a high resolution” way. On a modern high DPI display, some icons appear fuzzy. The dialog boxes contain too many tabs with too many options, most of which the average user will never touch. The preferences window alone has more than twenty pages.

This is software that has added features on top of features for twenty-five years, without ever taking a step back and reorganizing or simplifying. Power users love this because every option they could possibly need is in there somewhere. New users find it overwhelming because all the options that they will never use are also in there, right next to the one they are looking for.

There is no native version for macOS or Linux. WinSCP is Windows only (which makes sense considering the name, but is a limitation nonetheless). On macOS, the closest thing is Cyberduck and Transmit. On Linux, most people use the command line or FileZilla. If you work across operating systems, WinSCP cannot follow you. I have a Macbook for personal use, and a Windows desktop for work, and the fact that my file transfer workflow is completely different on each machine because WinSCP only exists on one of them is a minor but persistent friction.

There is also no tabbed interface for multiple simultaneous connections, at least not in the traditional sense. You can open more than one session in different windows or use the “New Tab” feature added in more recent versions, but it does not feel as fluid as FileZilla’s tabbed sessions. When I need to transfer files between two remote servers — download from one, upload to the other — I end up with two WinSCP windows and a local folder acting as an intermediary, which works but seems like something the software should be able to do more elegantly.

But these are complaints about a free, open source application maintained primarily by one developer for a quarter of a century. That context matters. WinSCP has no design team. It does not have a UX researcher. It does not have a product manager deciding which features to sunset in the name of simplicity. It has Martin Prikryl, a community of contributors, and twenty-five years of accumulated functionality that works. The lack of corporate polish is also the lack of corporate nonsense — no telemetry, no analytics, no “we’ve updated our privacy policy” emails, no dark patterns in the installer, no bundled browser toolbar.

I think about WinSCP the way I think about a good tool in a toolbox. It is not the newest. It is not the shiniest. The handle is worn and the label is faded. But every time I need to move files to a server — which is at least three times a week — I reach for it without thinking. That is the greatest compliment I can give to any software. It has become invisible through reliability. I do not notice WinSCP when I use it. I only notice when I am on a machine where it is not installed and I have to use something else, and that something else is always slightly worse in a way I cannot fully articulate but immediately feel.

It is free. It is ugly. It works. Some software does not need to be anything more than that.

User Rating:

5 / 5. 1

Freeware
7.27 MB
Windows 8, Windows PC
winscp