Thursday, October 1, 2026

FTP vs PSFTP

 

FTP vs PSFTP

These are two different things — one is a protocol, the other is a specific program — so the comparison works a bit like comparing "email" to "Outlook."

FTP (File Transfer Protocol)

  • A protocol (a set of rules) for transferring files between a client and a server over a network.
  • Sends data, usernames, and passwords in plain text — unencrypted. Anyone intercepting the traffic can read your credentials and file contents.
  • Uses two separate connections: one for commands, one for data.
  • Accessed via a client program — on Windows/Linux/Mac, often just the built-in ftp command, or graphical tools like FileZilla.
  • Still used in some legacy systems, but considered insecure for anything sensitive over the open internet.

PSFTP (PuTTY SFTP client)

  • Not a protocol — it's a specific program, part of the PuTTY suite of tools (alongside PuTTY itself, PSCP, Plink, etc.), built by Simon Tatham for Windows (and available on Unix-like systems too).
  • PSFTP implements SFTP (SSH File Transfer Protocol), which is a completely different protocol from FTP, despite the similar name.
  • SFTP runs over SSH (Secure Shell), so everything — commands, filenames, file contents, login credentials — is encrypted.
  • Uses a single secure connection (unlike FTP's two-connection setup).
  • Typically used to connect to Unix/Linux servers that accept SSH connections.

Quick comparison

FTPPSFTP (SFTP)
TypeProtocolProgram (implements the SFTP protocol)
SecurityUnencryptedEncrypted (via SSH)
Port21 (commands), 20 (data)22 (same as SSH)
Typical clientftp command, FileZillapsftp command (PuTTY suite)
RiskPasswords/data visible if interceptedProtected by SSH encryption

Why this matters for your lab

If your Unix server only accepts SSH connections (common for university lab servers), the plain ftp command from your earlier steps may simply fail to connect, because the server isn't running an FTP service at all — it's running SSH/SFTP instead. In that case, PSFTP (or an SFTP-capable client like WinSCP or FileZilla's SFTP mode) is the one that will actually work.

If ftp <server_address> connected successfully in your earlier task, the server does support plain FTP, so you're fine as-is. If it timed out or refused the connection, try psftp <server_address> instead — the commands inside (cd, ls, get, mget, bye) are almost identical to what you already used.