SFTP - Secure File Transfer Protocol
'Sftp' is a secure version of the File Transfer Protocol (ftp). It uses FTP commands to transfer files securely between accounts, whether the accounts are on the same machine or on different machines, including your home computer, if it is properly configured.
This article is composed of the following sections:
Basic Instructions
To transfer a file you must know the machine name (e.g. mi5.ucsd.edu), and the name and password of the account with which you want to copy files.
Getting started with sftp:
Let's say you were on your account "jbond" and you wanted to transfer a file to an account drno on mi5.ucsd.edu. First, you should start sftp and tell it to which username and machine you want to hook up:
% sftp drno@mi5.ucsd.edu
If this is the first time you have connected to the remote machine, mi5.ucsd.edu, a security warning message will be displayed:
Connecting to mi5.ucsd.edu... The authenticity of host 'mi5.ucsd.edu (127.0.0.1)' can't be established. RSA key fingerprint is e4:16:3a:3f:69:b6:37:69:69:ca:bb:a6:33:fa:47:ac. Are you sure you want to continue connecting (yes/no)?
Type 'yes', and hit return. The remote machine will warn you that it now regards mi5.ucsd.edu as authentic, and then asks you for drno's password.
Warning: Permanently added 'mi5.ucsd.edu' (RSA) to the list of known hosts. drno@mi5.ucsd.edu's password:
If the account and password are correct, then the sftp prompt ( sftp> ) will appear:
sftp>How to get a single file from the remote account:
To copy a file from the remote account to your original acount, use the "get" command followed by the name of the file you want to copy:
sftp> get martini.txtHow to put a single file into the remote account:
To copy a file from your original account into the remote account, use the "put" command followed by the name of the file you want to copy:
sftp> put shaken-not-stirred.txtSome other useful sftp commands:
You are initially logged into the home directory of the remote account. It is possible to change to a different directory on the remote account using the "cd" command, just like in Unix:
sftp> cd mydirectory
The "ls" command may be used to list the contents of the current directory on the remote machine.
sftp> ls
Alternatively, "ls -l" can be used to obtain a more detailed listing, showing the file's access privilages, size, and the date it was last modified.
A list of sftp commands is available within ftp by typing the word "help" or a question mark (?) at the prompt:
sftp> help
To exit the ftp program, type the command "quit" at the ftp prompt.
sftp> quit %Copying multiple files
To copy multiple files, use wildcard characters to specify many files. A 'wildcard' character is a punctation mark that represents any character, or any number of any characters. An asterisk '*' represents any number of any characters, and a question mark '?' represents one of any character.
sftp> get *Additional information:
For more information on sftp, see the manual page for sftp:
% man sftp
List of SFTP Commands
While the version of SFTP that you are using will vary from machine to machine, here are some of the common commands, along with a brief definition
| Commands: | |
|---|---|
| cd path C | hange remote directory to 'path' |
| lcd path | Change local directory to 'path' |
| chgrp grp path | Change group of file 'path' to 'grp' |
| chmod mode path | Change permissions of file 'path' to 'mode' |
| chown own path | Change owner of file 'path' to 'own' |
| help | Display this help text |
| get remote-path [local-path] | Download file |
| lls [ls-options [path]] | Display local directory listing |
| ln oldpath newpath | Symlink remote file |
| lmkdir path | Create local directory |
| lpwd | Print local working directory |
| ls [path] | Display remote directory listing |
| lumask umask | Set local umask to 'umask' |
| mkdir path | Create remote directory |
| put local-path [remote-path] | Upload file |
| pwd | Display remote working directory |
| exit | Quit sftp |
| quit | Quit sftp |
| rename oldpath newpath | Rename remote file |
| rmdir path | Remove remote directory |
| rm path | Delete remote file |
| symlink oldpath newpath | Symlink remote file |
| version | Show SFTP version |
| !command | Execute 'command' in local shell |
| ! | Escape to local shell |
| ? | Synonym for help |
By zz1js 23/06/99
Revised by zz1mf 29/08/03

