File transfer through SSH is easy!

Mateus Abelli - Aug 20 '23 - - Dev Community

For newcomers, SSH itself might look hard at first and file transferring even more complicated. How to connect to a remote machine to send or copy files from it?

I'm going to show you that it is not as complicated as it looks. As a matter of fact, it's quite easy!

First let's define the appearance of our remote connection for our examples:

  • User: dev
  • Address: 123.45.67.89

Replace it with your real remote machine connection while following the examples

The interactive way

Let's use the SSH File Transfer Protocol, or SFTP.

With this tool, we connect to our remote machine and use it with a bash-like shell. Let's see how it works:

sftp dev@123.45.67.89
Enter fullscreen mode Exit fullscreen mode

With SFTP we rely on file browsing to either receive or send files, after opening our connection let's explore the remote and local working directories.

Inside the remote we can navigate freely using cd and ls commands. See all available commands with help.

sftp> pwd
Remote working directory: /home/dev

sftp> lpwd
Local working directory: /c/Users/User
Enter fullscreen mode Exit fullscreen mode

Sending files from 💻 local machine to the 🌐 remote machine:

sftp> put # Press Tab
myfile1.txt 
myfile2.txt

sftp> put myfile2.txt # 👈 Send myfile2.txt to the remote working directory
Enter fullscreen mode Exit fullscreen mode

Receiving files or folders from 🌐 remote machine to 💻 local machine:

sftp> ls
file1.txt
file2.txt
folder

sftp> get file1.txt # 👈 Gets file1.txt to the local working directory

sftp> get -r folder
        # 👆 To get an entire directory
Enter fullscreen mode Exit fullscreen mode

The non-interactive way

We will be using the Secure Copy Protocol, or SCP.

It's a nice and quick way and all it takes is a ssh-like command with the file paths, a login prompt and there you go!

Sending files from 💻 local machine to the 🌐 remote machine:

scp ./file.txt dev@123.45.67.89:/home/dev/file.txt
    # 👆 Your local file path   👆 Where to place it on the remote
Enter fullscreen mode Exit fullscreen mode

Receiving files or folders from 🌐 remote machine to 💻 local machine:

                                      # 👇 Where to place it on the local
scp dev@123.45.67.89:/home/dev/file.txt ./file.txt
                  # 👆 The remote file path

scp -r dev@123.45.67.89:/home/dev/folder ./folder
  # 👆 To copy an entire directory
Enter fullscreen mode Exit fullscreen mode

Although this is an easy way for a quick file transfer there are some caveats.

According to OpenSSH developers in April 2019, SCP is outdated, inflexible and not readily fixed; they recommend the use of more modern protocols like SFTP and rsync for file transfer.[3] As of OpenSSH version 9.0, scp client therefore uses SFTP for file transfers by default instead of the legacy SCP/RCP protocol.[4

Wikipedia

Conclusion

As you can see, file transferring through SSH is not that hard. There are a few methods to accomplish it and after you get used to it, it's just like doing a regular connection.

Now you can get that file or send it to your remote box, have fun!

Attributions and Sources

. . . . . . . . .
Terabox Video Player