Ssh Sftp Client For Mac
In this article I will be detailing how you can use the Terminal (Mac) as an FTP or SFTP client, to do a variety of tasks on remote servers. For the purpose of illustration, I’m using a test server with Linux, Apache, MySQL and PHP installed on it, with SSH access enabled. Cyberduck - SFTP/FTP Client for Mac Cyberduck is a file transfer client for Apple Mac and Microsoft Windows Cyberduck is a fairly popular file transfer client for Apple Mac and Microsoft Windows. It supports FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure & OneDrive, Google Drive and Dropbox.
- Ssh Sftp Client For Mac High Sierra
- Ssh Sftp Client For Mac Os
- Ssh Sftp Client For Mac Catalina
- Free Ssh Sftp Client
Windows SSH/SFTP
Note: Windows 10 has a built in SSH that can be launched by navigating to 'Apps and Features', selecting 'Manage optional features' and clicking 'OpenSSH Client'. The instructions below are for Windows 9X systems.
1. Download SSH/SFTP Secure Shell from https://shareware.unc.edu (software is listed alphabetically on the page). Remember where you save the download.
2. Click on the icon to install the client.
3. At the Welcome window, click Next.
4. At the License Agreement window, click Yes.
5. At the Choose Destination Folder window, click Next .
6. At the Select Program Folder window, click Next.
7. At the Select Components window, click Next.
8. At the Check Setup Information window, click Next.
9. When the Setup Status is complete, click Finish.
Ssh Sftp Client For Mac High Sierra
Mac SSH/SFTP
First open a terminal window
- Open Finder -- select Applications -- select Utilities -- then select the Terminal icon.
Using SSH
At the prompt, type in this command:
ssh [email protected]_systemname
Replace remote_username with your username and remote_systemname with the name of the system you are connecting to (for example, [email protected] ).
Enter your password when prompted. You may also be prompted to accept a host security key. You must type 'yes' to continue.
Using SFTP
Ssh Sftp Client For Mac Os
Unless you are really knowledgeable about the file structure of your computer, it is a good idea to navigate to the folder you want to transfer files into or out-of on your computer before you open a connection to a remote system. Use pwd and cd at the prompt to navigate to a suitable folder on your system. Once there, type:
sftp [email protected]_systemname
Where remote_username is your username on the system and remote_systemname is the name of the system you are connecting to (for example, [email protected] ).
Enter your password at the prompt. Now when you cd around the system, you are moving between folders on the remote system. Change to the remote folder where you will be transferring files to/from. Use put, get, mput, or mget to transfer files between the remote system and your own. Type quit to exit the SFTP session.
So far in this series of posts on ssh
on macOS:
- Transferring files with
ssh
(this post) - SSH Tunnels (upcoming)
Ssh Sftp Client For Mac Catalina
Please consider supporting Scripting OS X by buying one of my books!
In the previous posts we looked how to connect with ssh
to a remote computer (host) and how to setup the keys necessary for a secure connection.

Despite the name ssh
does not actually provide a shell or command line interface to the host itself. it ‘merely’ provides a secure connection to connect to the default shell on the host itself.
Even this basic use of ssh
is already very useful and powerful. It allows to open one or more full command line sessions to remote computers as if we sat at their keyboard. You can also send individual commands and receive and process the results.
However, ssh
has a few more powerful tools available.
Copy Files Remotely
You can also use the ssh
connection to copy files to and from a remote host.
The command you use for this is scp
(secure copy) and it use the same basic syntax as the cp
command
But, since scp
can copy from the local computer to a remote host or vice versa, you usually add a bit more information:
Neoverse collector's edition download free pc games. (The examples will use a file name hello.txt
. To create one quickly, simply type echo 'Hello SSH' > hello.txt
in Terminal.)
To simplify this, a few examples:
This will copy the local file sample.txt
from the current working directory to the remote host’s ~/Documents/
directory. scp
will show an ascii progress bar for every file copied. (though with these small files, you will not see much of it) You can suppress the progress display with the -q
(quite) option.
For the destination, the colon :
separates the hostname (DNS) from the file path.
This command will prompt for the user’s password on the remote host, unless you have added your public key to the remote host’s authorized_keys
file.
Since no user name is given before the hostname (separated with an @
) scp
uses the username that you are logged in with on the local computer. If the remote user has a different name, use:
We do not want the local shell to evaluate the ~
to the local home directory, but want the remote computer to evaluate ~
to the remote user’s home directory, so we have to quote the remote path.
Like cp
, when the source is a file and the destination is a directory, then the file will be placed into the destination directory.
If the remote path does not exist, then scp
will present an error:
You can also rename the file while copying:
You can copy files from the remote host to your local machine:
In this case we passed .
or the current working directory as the destination. You can also pass a local path:
Use the -r
option to copy all the contents of a directory:
Remote-to-remote Copies
You can copy from one remote host to another.
There are two solutions for this. The first will copy the file to the local computer and then back up to the other remote host. You invoke this version of remote-to-remote with the -3
option.
(I am shortening the full domain names from primus.example.com
and secundus.example.com
to primus
and secundus
for simplicity.)
Under most circumstances copying a file down to your Mac and then back up to the other remote host is less than ideal. Imagine you are working from home with your laptop and want to copy a large file from one server at work to another.
The other option is to tell the source remote host to scp
the to the other remote host. You could achieve this by ssh
ing to the remote machine and running scp
from there. Thankfully, scp
is smart enough to attempt exactly that when you type
This command will probably fail right now. It requires a few things to be set up to work:
- either: client key authentication to be setup from
primus
tosecundus
- or: client key authentication from your local computer to
primus
andsecundus
with agent forwarding enabled
The first option is fairly easy to understand. scp
will connect to primus
and authenticate with your local client key. Then it will tell primus
to connect to secundus
, authenticating using primus
’ client key and the copy the file. It basically works as if you ssh
ed in to primus
and ran scp
without the extra typing.
There are drawbacks to this. If ssh-agent
is not running on primus
and does not have the passphrase stored yet, then primus
cannot unlock its private key and authenticate to secundus
.
Also you basically need to prepare all remote hosts to have keys exchanged between each other, which can be painful, if not impossible to manage.
Agent Forwarding
The second option, called ‘Agent Forwarding’, circumvents these problems. This will tell the first remote host (primus
) to ask your local ssh-agent
for a key to authenticate to secundus
. The system does not actually transfer the private key, but asks ssh-agent
on your local computer to encode the authentication challenge for primus
.
That way you only need to manage the keys for all remote hosts on your local computer.
You can also use agent forwarding with normal ssh
connections. It is not enabled by default, but you can enable it for an ssh
session with the -o ForwardAgent=yes
option:
Since this is hard to type, there is a shortcut:
Free Ssh Sftp Client
When you are logged in to the remote host with agent forwarding enabled, you can then ssh from there to another remote host (secundus
) and it will try to use the keys from your local computer’s ssh-agent
to authenticate.
This can be a useful strategy if direct access to the second remote host (other.mac.com
) is blocked with firewalls.
You can also use this for the scp
remote-to-remote copy. Unfortunately, scp
does not have a convenient -A
option, so you have to use the long parameter form:
When you need agent forwarding regularly for a specific host, you can enable it by default for this particular host in your ~/.ssh/config
file. Add the following lines:
Note: There are some security concerns with agent forwarding. A user with root access on the intermediate system can gain access to the connection to your local ssh-agent, thus gaining the ability to encrypt with your private keys. Be aware of this in security sensitive environments.
SFTP
If you have many files in a complex file structure , scp
can be a little cumbersome. There is a special interactive mode that you can invoke with the sftp
command (secure file transfer program).
Note: sftp
(according to its man page) is ‘similar’ to ftp
but not identical. It also should not be confused with ftps
which is ftp
over SSL.
Obviously, if you have key authentication setup, sftp
will use that.
There are many interactive commands to navigate the local and remote file system and upload (put
) and download (get
) files. You can look at the details in the sftp
man page. However, if you need to use sftp
frequently, then you should use a graphical sftp
application. There are a large number of SFTP client for macOS and iOS. Here is a list of some popular clients: (AppStore links are affiliate links.)
- Transmit (Mac Version, also iOS AppStore): Aside from a great macOS application, Transmit also comes as an iOS App.
Update 2018-01-10:Panic is going to cease development and sale of Transmit for iOS for the time being - Fetch (Mac AppStore): Fetch offers free licenses for educational and charitable organisations
- CyberDuck (Mac AppStore): CyberDuck has an optional command line tool
- MountainDuck (Mac AppStore): Sibling to CyberDuck, but mounts remote servers in the Finder.
- FileZilla: free open source solution
All of these tools connect to many other server protocols other than sftp
. However, the advantage of sftp
is not just the built-in security, but that you don’t need other software than sshd
running on the server.
Summary
Previous Post: Client Verification
- you can use
scp [[[email protected]]host:]source [[[email protected]]host:]destination
to copy files from or to a remote host overssh
- you can use agent forwarding to simplify key management in triangle setups
sftp
help managing/transferring multiple files overssh
, there are many UI applications
Next Post: SSH Tunnels