The Kermit FTP Client - Secure Scriptable FTP
Looking across the Hudson River from West 125th Street NYC
SECURE FTP : FTP SCRIPT : FTP AUTOMATION : AUTOMATE FTP : BATCH FTP :
C-Kermit 8.0 and
later for UNIX (including Linux, Solaris, AIX, HP-UX, FreeBSD, NetBSD,
Tru64, QNX, SCO, IRIX, and all others for which TCP/IP-capable C-Kermit
versions are presently available) and Kermit 95 2.0
(for Windows 95, 98, ME, NT, 2000, XP, Vista, 7, ...) include a built-in
FTP client that offers the following advantages over traditional
- C-Kermit 9.0.304 Dev.12 (12 January
2015) fixes a bug in the GET command (used for downloading files FTP
protocol as well as in Kermit protocol) that could cause the program to
crash on Unix-based platforms that either do not have UUCP (such as QNX and
Mac OS X) or in any C-Kermit version that was built with the
-DNOUUCP compile-time option.
- Any of Kermit's security methods can be used
to establish and conduct secure FTP sessions with FTP servers that support
these methods: Kerberos 4, Kerberos 5 / GSSAPI, SSL, TLS, or SRP. Due to
recent relaxations in USA export law, Kermit's security methods are more
widely available than they were in previous releases. Secure FTP
servers are available from the
sources listed in the security document.
Sites such as IBM
Information Exchange are beginning to require secure FTP
The security features are optional. They do not have to be included in the
Kermit program, and if they are, you don't have to use them (unless the server
requires secure connections). You can use C-Kermit as an FTP client without
using the security features, just as you use the regular Unix FTP client, if
the server allows it.
Why use FTP instead of SSH/SCP/SFTP? Because (a) FTP is inherently
platform-neutral, and works everywhere, not just on Unix and Windows; (b)
FTP handles cross-platform text-file transfer; (c) Kerberos and SSL/TLS are
more secure than SSH since they provide for revocation of compromised
identities (CLICK HERE for a thorough
- FTP sessions are fully scriptable using Kermit's normal
language, which includes status indicators, user-defined and built-in
variables, arrays, and functions; block structure, loops, decision-making,
pattern matching, string operations, file i/o, integer and floating-point
arithmetic, scoping, recursion, and all the rest, plus access to internal
FTP protocol messages and codes. Previously, UNIX-based
FTP clients could be automated only by cumbersome and error-prone methods
such as piping commands into their standard input (which does not allow
for testing results, decision-making, looping, etc), or Expect scripts
(which don't know anything about the connection itself or the FTP protocol
and its messages and result codes, relying only upon prompts and text
messages from the FTP client for status, which can vary with every
client/server combination and even from one session to the next).
CLICK HERE for an introduction to C-Kermit's
FTP command and scripting language.
NOTE: The fact that FTP sessions can be scripted does not mean you
have to script them. You can also conduct FTP sessions interactively,
or for that matter, also completely from the shell command line. You don't
have to know or learn anything about programming to use the C-Kermit FTP
client unless you want to write automated procedures.
- Firewall Traversal
- Kermit's SET TCP HTTP-PROXY and SET HTTP SOCKS-SERVER commands allow access
to otherwise inaccessible services (e.g. FTPS)
through HTTP or SOCK proxy servers.
- Character Sets
- Character sets can be translated as part of the
transfer process even when the FTP server does not support character-set
translation (as most do not), including to/from the new Internet standard
international character set, Unicode UTF-8.
Translation can be done for both filenames and for the contents of text files.
- Automatic Per-File Text/Binary Mode Switching
- The correct file type, "ascii" (i.e. text) or binary, is chosen
automatically (unless you go out of your way to prevent it). In a
multi-file transfer (MPUT or MGET), any mixture of text and binary files
can be transferred in a single operation, even between unlike platforms.
- Atomic File Movement
- Atomic file movement operations are provided
(delete, move, or rename files automatically upon successful transfer).
- Flexible File Selection
- All of C-Kermit's file-selection mechanisms are available:
name patterns and lists, exception lists, type, size, and/or date, e.g.
"send all the files whose names match one of these patterns, except for
any files whose names match any of these other patterns, that are between
100K and 200K in length and were last modified between these two dates,
and that are text files."
- Update and Recovery Modes
- Update mode (don't bother transferring files that didn't change since
last time) and recovery (resumption of an interrupted transfer from the
point of failure) are available in both directions.
- File Permissions
- When uploading files from Unix to Unix, the file's permissions can be
preserved if desired.
- File Dates
- When downloading files, each received file can have its modification
date/time set from the server file.
- Directory-Tree Transfers
- Recursive directory-tree MPUTs are supported to any platform
that has a tree-structured file system (such as UNIX, VMS, Windows).
Recursive MGETs are supported between like platforms if the server cooperates.
- File Collision Options
- When receiving files, all of Kermit's file collision actions are
available: backup (existing file), update (refuse incoming file if not newer),
refuse (incoming file), rename (incoming file), append (incoming file to
existing file), and overwrite (existing file).
- Multi-file transfers can be manually interrupted on a per-file basis,
automatically skipping to the next file. Of course the entire batch
can be canceled too.
- Pipes and Filters
- Kermit can upload from the standard output of an external command and
download to the standard input of an external command, and it can pass
outbound and incoming files through standard i/o filters of your choosing.
- Dual Sessions
- An FTP session can be open at the same time as a Telnet or serial-port
(or dialout) session; a single script can control them both.
- Copes Better with Firewalls
- Kermit's FTP client uses "passive mode" by default to minimize blockage
by firewalls and network address translators.
- Friendly Command Interface
- All of Kermit's interactive command features are available for FTP too:
keyword menus, abbreviation, and completion; filename menus and completion;
command recall, command macros, command files, command shortcuts, and built-in
- Command-Line Control
- An entire FTP session (connect, login, CD, upload or download, logout)
can be specified on the shell command line without using interactive commands
or a script.
- URL Control
- A file or file group can be retrieved from an FTP server simply by
specifying an FTP URL on the command line.
- Logging and Feedback
- All of Kermit's logging options and formats are available to keep an
accurate and complete record of each connection and file transfer, and to aid
in troubleshooting. All of Kermit's file-transfer display options are
available too: fullscreen, brief, CRT, serial, none.
And best of all:
- It's Less Aggravating
- Kermit doesn't give you those annoying per-file prompts every time you
start a multi-file transfer without remembering to give a "prompt" command
first :-) And you don't have to worry about
transferring files in the wrong mode (text or binary).
Translations of this page courtesy of...