Topics Map > Unix Information
How to Use sFTP to Transfer Files/Directories in Linux By default, SFTP adopts the same SSH transport for establishing a secure connection to a remote server. Although, passwords are used to authenticate users similar to the default SSH settings, but, it is recommended to create and use SSH passwordless login for simplified and more secure. Establishing an FTP connection. To connect to the FTP server, we have to type in the terminal.
Topics Map > Account InformationTopics Map > CAE Labs
Secure File Transfer Protocol (sftp) is a file transfer program which runs over an ssh tunnel and uses many features of ssh, including compression and encryption. Essentially, sftp is a drop-in replacement for the standard command-line ftp client, but with ssh authentication.
Starting sftp
The command for starting sftp is as follows:
ComputerName:~# sftp [email protected]
Where user is your CAEusername.
The first time you connect to sftp.cae.wisc.edu, sftp will report that 'The authenticity of host 'sftp.cae.wisc.edu' can't be established.' This means that sftp doesn't have sftp.cae.wisc.edu in its database of known hosts. Answer yes at the prompt to connect to the server.
Next, sftp will add sftp.cae.wisc.edu to its list of known hosts, and ask for your CAE account password. Enter your password, and sftp will log in and present you with the sftp prompt, which should look like this:
sftp>
By default sftp will change the working directory to your CAE Unix home directory
Using sftp
Many commands sftp uses are similar to the Unix shell commands for navigating files and directories, with a few small changes. The most notable difference is that you are working with two computers so there is usually a 'local' and 'remote' version of each command (prefixed by an 'l' to designate a local command). The following commands work just like their Unix counterparts:
cd - change directory on the ftp server to
lcd - change directory on your machine to Jixipix hand tint pro 1 0 12.
ls - list files in the current directory on the ftp server
lls - list files in the current directory on your machine
pwd - print the current directory on the ftp server
lpwd - print the current directory on your machine.
exit - exit from the sftp program.
Getting Files
The get command in sftp allows you to download files from the sftp server.
Usage: get remote-path [local-path]
Where remote-path is the file on the server you want to download, and the optional local-path is the path you want to put the file on your machine. It defaults to your current directory.
For example, to download a file named 'foo.bar', the following command would be used:
sftp>get foo.bar
To download this file and save it as 'readme.txt', the following command would be used:
sftp>get foo.bar readme.txt
Getting Multiple Files
To download more than one file from the sftp server use the mget command.
Usage: mget
mget works by expanding each filename listed and running a get command on each file. The files are copied into the local working directory, which can be changed with the lcd command.
For example, to download all the files in the remote working directory, the following command would be used:
sftp> mget ./*
To download all of the files ending with .txt the following command would be used:
sftp> mget ./*.txt
Recursive Copy with SCP
If you try to copy a folder using the get or mget commands, sftp will complain that it 'Cannot download non-regular file: filename'. This is because the basic sftp client doesn't allow for a recursive copy. However, the program scp will allow you to do this. The scp command will not allow you to see what's on the sftp server, so the files need to be located using the sftp client.
Note: scp is a separate program and must be executed from the Unix command line prompt. NOT within the SFTP client.
Sftp Linux Client
Usage: scp copy_from copy_to
For example, if you wanted to copy the file 'foobar.txt' from the remote location to your own computer, use the command:
scp [email protected]:/path/to/foobar.txt /some/local/directory
Likewise, if you wanted to copy the file 'foobar.txt' from your own computer to your CAE remote files, use the command:
scp /path/to/foobar.txt [email protected]:/some/remote/directory
In both examples, user is your CAE username. Enter your password when scp asks for it. scp works just like a get command in sftp.
To recursively copy files or directories from your CAE account, use the -r switch.
For example, to copy the entire directory 'tutorial' from my CAE home directory to the home directory on your machine, the following command would be used:
Sftp Linux Server
ComputerName:~ # scp -r [email protected]:~/tutorial ~/
Where user is your CAE username.