Start an FTP or SFTP Server in Mac OS X
If you’ve visited the Sharing Preference panel in the newer versions of Mac OS X you may have noticed there is no longer the direct option to enable an FTP server to share files and folders. Well, at least there isn’t an obvious option, but the FTP and SFTP server function does still exist, the two have just been split into different functionalities, with the new versions of OS X preferring SFTP rather than FTP. Regardless of what you want to use, setting up a server for either of them is extremely simple, and we’ll walk through how to start either an FTP or SFTP server in OS X.
Each of these FTP/SFTP server tricks work in all new versions of OS X, be it Mavericks 10.9, Mountain Lion 10.8, or 10.7 Lion.
Start the FTP Server in OS X
This will start a generic FTP and FTPS server on the Mac, but not an SFTP server:
- Launch the Terminal (/Applications/Utilities) and enter the following command to start the FTP server:
- Confirm the FTP server works by typing:
sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
If you see the familiar FTP login:
$ ftp localhost
Connected to localhost.
220 ::1 FTP server (tnftpd 20100324+GSSAPI) ready.
You know the server is running. If you don’t see that, then the server either hasn’t finished starting yet or you didn’t enter the command properly. You can then FTP from other Macs via the same ftp command, or by using the “Connect to Server” option in the Finder.
Enabling the SFTP Server in OS X
As you probably know, FTP is unencrypted and as a result as fallen out of favor for security reasons. Enabling SFTP is actually easier than FTP on the Mac these days:
- Launch System Preferences and go to “Sharing”
- Click on the checkbox next to “Remote Login” to enable SSH and SFTP
Update: Our much more detailed guide on Remote Login and SSH Server is here.
You can verify that SFTP is working by typing this at the command line:
Note: The FTP and SFTP servers are different, and enabling one does not enable the other. SFTP is recommended because of the default encryption layer and secure transferring.
Disable FTP or SFTP Server in OS X
Here’s how to disable the FTP server:
sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist
As the command suggests, this unloads the ftp daemon and shuts down the server. Obviously you can only shut down and disable the FTP server if it was enabled to begin with.
Disabling SFTP is just a matter of unchecking the “Remote Login” box that sits within the Sharing Preference Panel of OS X.
If you’re wondering how any of this is different from prior versions of OS X, you would have to look to Snow Leopard (10.6) or before to find the difference. Previously, an FTP Server option was a toggle within the general sharing preference panels like this:
Though it’s not entirely clear why Apple pulled the easy frontend to FTP sharing, it’s possible they are simply choosing to favor SFTP because it’s a more secure protocol, and by enabling one you enable both. Nonetheless, FTP and FTPS servers are still around (as are clients for that matter), so it’s simply a matter of using the terminal to enable the server side of things. Generally speaking, because SFTP is much more secure, that is what you should be using for remote file transfers and connections though, so keep that in mind if you plan on hosting any kind of server to the outside world, or even if you just want to have secured file transfers yourself to and from remote Macs.